当前位置:首页 > 消费电子 > 消费电子
[导读]在很多嵌入式控制系统中,系统既要完成大量的信息采集和复杂的算法,又要实现精确的控制功能。

TMS320F28015简介,TMS320F28015是德州仪器(Texas Instruments)推出的一款32位数字信号处理器(DSP)芯片,主要应用于实时控制和数字信号处理领域。其主要特性包括:架构‌:采用32位的C28x DSP架构,适用于实时控制和数字信号处理应用。‌处理能力‌:具有60 MHz的工作频率,能够实现高性能的信号处理和控制算法。‌存储器‌:内置32KB的闪存程序存储器和4KB的RAM数据存储器。‌通信接口‌:支持UART和SPI等通信接口。‌定时器和PWM‌:具有多个定时器和PWM输出。‌输入/输出‌:具有多个GPIO引脚,适用于连接外部设备和传感器。‌供电和封装‌:支持1.8V至3.6V的单电源供电,封装形式为LQFP‌3。

S3C2440和TMS320F28015是两种不同的微处理器,分别属于ARM架构和DSP架构,具有各自独特的特点和应用领域。‌

S3C2440简介

S3C2440是一款基于ARM920T核心的32位CMOS微控制器,具有以下主要特性:

‌供电电压‌:1.2V内核供电,1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电。

‌缓存和处理器‌:具备16KB的I-Cache和16KB的DC Cache/MMU处理器。

‌外部存储控制器‌:支持SDRAM控制和片选逻辑。

‌接口‌:包括4通道DMA、3通道UART、2通道SPI、1通道IIC-BUS接口(多主支持)、1通道IIS-BUS音频编解码器接口、AC'97解码器接口、2端口USB主机/1端口USB设备(1.1版)、4通道PWM定时器和1通道内部定时器/看门狗定时器、8通道10位ADC和触摸屏接口、具有日历功能的RTC、相机接口等。

‌其他特性‌:具有130个通用I/O口和24通道外部中断源,支持普通、慢速、空闲和掉电模式,具有PLL片上时钟发生器,FBGA-289封装‌12。

1.1 S3C2440及TMS320F28015简介

Samsung公司的处理器S3C2440是内部集成了ARM公司ARM920T处理器内核的32位微控制器,资源丰富,带独立的16 KB的指令Cache和16 KB数据Cache,最高主频可达400 MHz.它拥有130个通用I/O、24个外部中断源以及丰富的外部接口能实现各种功能,包括支持多主功能的I2C总线接口、3路URAT、2路SPI、摄像头接口等。

1.2 I2C总线接口

I2C总线是一种用于IC器件之间连接的串行总线,采用SDA(数据线)和SCL(时钟线)两线连接每个带有I2C总线接口的器件或模块。串行的8位双向数据传输率在标准模式下可达100 kb/s,快速模式下可达400 kb/s.多个微控制器可以通过I2C总线接口非常方便地连接在一起构成系统,并根据地址识别每个器件。这种总线结构的连线和连接引脚少,器件间总线简单,结构紧凑。因此其构成系统的成本较低,并且在总线上增加器件不会影响系统的正常工作,所有的I2C总线器件共用一套总线,因此其系统修改和可扩展性好。

总线必须由主机(通常为微控制器)控制,主机产生串行时钟( SCL) 控制总线的数据传输,并产生起始和停止条件。SDA 线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA 状态的改变被用来表示起始和停止条件。I2C总线起始和停止时序如图1所示。


基于ARM920T核心的32位CMOS微控制器特性

图1 I2C总线起始和停止时序

1.3 硬件电路

S3C2440和F28015自身均集成了I2C总线模块,支持多主设备I2C总线串行接口,可以方便地挂接到I2C总线上。因此,两者之间的I2C总线接口电路的设计变得十分简单,只要将两者的对应引脚I2C_CLK(对应I2C总线中的SCL线)和I2C_SDA(对应I2C总线中的DATA线)连接起来即可。S3C2440和TMS320F28015的硬件接口电路如图2所示。


基于ARM920T核心的32位CMOS微控制器特性

图2 S3C2440和TMS320F28015的硬件接口

电路S3C2440的PA55和PA56引脚分别对应I2C_SDA和I2C_CLK,而F28015的GPIO32和GPIO33也可以分别复用为I2C_SDA和I2C_CLK.考虑到阻抗不匹配等因素会影响总线数据传输效果,因此在将两块芯片的I2C_DATA和I2C_CLK引脚直连时,在直连线路上各串联一个小电阻。

I2C_SDA和I2C_CLK是双向电路,必须都通过一个电流源或上拉电阻连接到正电源电压上。由于S3C2440和F28015的输出高电平均为3.3 V,所以在硬件设计时将I2C_SDA和I2C_CLK总线通过上拉电阻连接到了3.3 V的VCC电源上。

2 ARM和DSP通信软件设计

运行Linux操作系统的ARM微控制器作为主控制器,在数据管理及多任务调度等方面有显着优势,可以很好地组织外围器件采集的数据;主要实现对系统的整体控制,并通过总线设备驱动程序控制I2C总线模块,通过主机寻址实现向I2C总线上挂载的下层DSP的数据收发。为保证数据通信的实时性,F28015通过中断响应的方式实现数据接收和发送。

2.1 ARM9平台的嵌入式Linux的I2C总线驱动设计

2.1.1 I2C总线读写时序

ARM9微控制器作为主机向从机DSP写数据,首先向从机发送启动信号,然后发送7位从机地址和1位写标志位,再等待从机的应答信号。在收到应答信号后,主机发送数据给从机,再次等待应答信号。当主机收到应答信号之后再次发送数据。之后,主机等待从机的应答信号,如此直到数据发送完成,主机发送停止信号。I2C总线写数据帧格式如图3所示。


基于ARM920T核心的32位CMOS微控制器特性

图3 I2C总线写数据帧格式

主模式下读数据,是指每次从指定的位置读取一个或多个字节数据。主机首先向从机发送启动信号,然后发送 7位从机地址和1位读标志位,等待从机应答。当收到从机的应答信号后,主机准备接收从机发送的数据,接收完成后发送一个应答信号,如此直到数据接收完成,主机发送一个停止信号。图4为I2C总线读数据帧格式。


基于ARM920T核心的32位CMOS微控制器特性

图4 I2C总线读数据帧格式

2.1.2 Linux下I2C总线驱动程序概述

Linux系统的I2C总线驱动采用体系化结构设计,包括I2C总线适配器驱动和I2C总线设备驱动。总线驱动实现对I2C总线适配器(S3C2440的I2C总线模块)的控制,设备驱动实现对具体设备(F28015的I2C总线模块)的读写控制。图5为总体驱动框架,可以分为三个层次:

① I2C框架。内核中i2c.h和i2ccore.c为I2C总线框架的主体,提供了核心数据结构的定义、I2C总线适配器驱动和设备驱动的注册、注销管理、I2C总线通信方法上层的、与具体适配器无关的代码、检测设备地址的上层代码等。i2cdev.c用于创建I2C总线适配器的设备节点,提供I2C总线设备访问方法等。

② I2C总线适配器驱动。定义描述具体I2C总线适配器的数据结构,实现在具体I2C总线适配器上的I2C总线通信方法。

③ I2C总线设备驱动。定义描述具体设备的数据结构,借助I2C总线框架的相关函数实现设备的注册,并为用户提供上层应用程序编程接口。


基于ARM920T核心的32位CMOS微控制器特性

图5 总体驱动框架

Linux的I2C总线驱动框架中的主要数据结构包括: i2c_driver、i2c_client、i2c_adapter和 i2c_algorithm,它们被定义在内核中的i2c. h头文件中。i2c_adapter对应于物理上的一个适配器,而i2c_algorithm对应一套通信方法,用来为适配器提供通信函数。i2c_algorithm中的关键函数master_xfer()用于产生I2C总线访问周期需要的信号,以i2c_msg(即I2C总线消息)为单位。该结构体原型如下:

struct i2c_msg{

_ _u16 addr;/*设备地址*/

_ _u16 flags;/*标志*/

_ _u16 len;/*消息长度*/

_ _u8 *buf;/*消息数据*/

};

i2c_driver对应一套驱动方法,是用于辅助作用的数据结构。i2c_client对应于真实的物理设备,每个I2C总线设备都需要一个i2c_client来描述。i2c_adapter和i2c_client的关系与I2C总线硬件体系中适配器和设备关系一致,即i2c_client依附于i2c_adapter.


基于ARM920T核心的32位CMOS微控制器特性

图6 设备驱动模块加载流程

在Linux内核源代码中drivers目录下的i2c_dev.c文件,是通用的I2C总线设备驱动文件,为应用程序提供open()、write()、read )、ioctl()和close()等操作接口来访问设备。应用层可以借用这些接口访问挂接在适配器上的I2C总线设备的存储空间或寄存器,并控制I2C总线设备的工作方式。

2.1.3 S3C2440的I2C总线驱动

设备驱动S3C2440内部的I2C总线控制器通过4个寄存器实现对通信的控制,分别是I2C控制寄存器(I2CCON)、I2C状态寄存器(I2CSTAT)、I2C收发数据移位寄存器(I2CDS)、I2C地址寄存器(I2CADD)。

按照Linux中I2C总线框架要求,S3C2440的I2C总线驱动设计主要完成以下工作:设计i2c_adapter_s3c_init()模板加载函数和对应于i2c_adapter_s3c_exit()模板卸载函数;设计i2c_adapter_s3c_xfer()模板S3C2440适配器通信方法函数。

i2c_adapter_s3c_init()通过注册s3c2440_i2c_driver结构体实现总线驱动的平台注册,s3c2440_i2c_driver结构体包含了具体适配器的probe()函数、remove()函数、resume()函数指针等信息。代码如下:

static int _ _init i2c_adap_s3c_init(){

int ret;

ret=platform_driver_regisiter(&s3c2440_i2c_driver);//注册platform_driver结构体

if(ret==0){//注册失败

ret=platform_driver_regisiter(&s3c2440_i2c_driver);

if(ret)

platform_driver_unregisiter (&s3c2440_i2c_driver);

}

return ret;

}

static struct platform_driver s3c2440_i2c_driver={

.probe=s3c24xx_i2c_probe,

.remove=s3c24xx_i2c_remove,

.resume=s3c24xx_i2c_resume,

.driver={

.owner=THIS MODULE,

.name=“s3c2440i2c”,

},

} ;

完成了S3C2440的I2C总线适配器驱动注册后,就可以将具体设备驱动注册到该总线平台上,实现I2C总线数据通信。i2c_dev.c文件是内核源码提供的通用I2C总线设备驱动文件,针对每个I2C总线适配器生成一个主设备号为89的设备文件,设备驱动模块加载流程如图6所示。完成加载后,驱动提供i2cdev_read()、i2cdev_write()、i2cdev_ioctl()函数来对应用户空间的read()、write()、ioctl()函数,供用户使用。用户通过这些接口函数实现I2C总线数据的读写功能。

2.2 DSP数据接收中断程序设计


基于ARM920T核心的32位CMOS微控制器特性

图7 I2C总线中断服务程序流程

通过配置F28015的I2C模块寄存器,设置I2C模块为从工作方式,同时利用I2C总线中断响应程序实现对总线上数据的接收和发送,进而完成数据通信。F28015产生了I2C总线中断后,就执行中断服务程序,图7为I2C总线中断服务程序流程。

中断服务程序通过查询状态寄存器(I2CSTR)标志位,得出中断类型码,然后调用相应的子程序,完成数据接收发送。代码如下:


基于ARM920T核心的32位CMOS微控制器特性

图8 数据接收和发送子程序

3 测试结果

通过NFS文件系统将编译成模块的I2C的总线驱动和设备驱动加载到运行Linux操作系统的S3C2440平台上(先加载总线驱动),再将F28015的测试程序烧写到RAM中。运行F28015等待I2C总线上的数据,再执行Linux系统中的I2C总线测试程序。测试结果显示,芯片通过I2C总线接口完成了数据通信,具有良好的实时性和可靠性。

‌S3C2440和TMS320F28015是两款在嵌入式系统中广泛使用的微处理器和数字信号处理器。‌

S3C2440简介

S3C2440是一款基于ARM920T核心的32位CMOS微控制器,由三星电子设计。其主要特性包括:

‌内核供电电压为1.2V,存储器供电电压支持1.8V/2.5V/3.3V,外部I/O供电为3.3V‌。

‌内置16KB的I-Cache和16KB的DC Cache/MMU处理器‌。

‌支持多种存储器类型,如SDRAM、SRAM和NAND Flash‌。

‌具有丰富的外设接口,包括3个UART、2个SPI、1个I2C总线接口、1个IIS-BUS音频编解码器接口、2个USB主机和1个USB设备接口‌。

‌支持多种通信协议,如SD卡和MMC卡接口‌‌12。

TMS320F28015简介

TMS320F28015是德州仪器(Texas Instruments)推出的一款32位数字信号处理器(DSP)。其主要特性包括:

‌基于32位的C28x DSP架构‌,工作频率为60 MHz。

‌内置32KB的闪存程序存储器和4KB的RAM数据存储器‌。

‌具有12位的模拟输入(ADC),适用于采集模拟信号‌。

‌支持UART和SPI等通信接口‌,适用于多种实时控制和数字信号处理应用,如工业控制、电机控制、电源转换等‌4。

功能特点

–100 MHz(10 ns循环时间)

–60 MHz(16.67-ns循环时间)

–低功耗(1.8V内核,3.3V I/O)设计

•JTAG边界扫描支持

–IEEE标准1149.1-1990标准测试接入端口和边界扫描体系结构

•高性能32位CPU(TMS320C28x)

–16×16和32×32 MAC操作

–16×16双MAC

–哈佛总线体系结构

–原子操作

–快速的中断响应和处理

–统一的内存编程模型

–代码高效(在C/C++和汇编中)

•引导ROM(4K×16)

–具有软件引导模式(通过SCI、SPI、CAN、I2C和并行I/O)

TMS320F28015(以下简称F28015)是TI公司的32位处理器,它具有强大的控制和信号处理能力,能够实现复杂的控制算法。片上整合了Flash存储器、I2C总线模块、快速的A/D转换器、增强的CAN总线模块、事件管理器、正交编码电路接口及多通道缓冲串口等外设,此种整合能够方便地实现功能的扩展。同时,快速的中断响应使它能够保护关键的寄存器并快速(更小的中断延时)地响应外部异步事件。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭