您的当前位置:首页正文

TMS320LF2407串口扩展

2024-10-18 来源:威能网
2006年10月第5期 航天制造技术 TMS320LF2407串口扩展 西安电子科技大学机电工程学院 米月琴 贾建援 摘要 DSP常需要与多个外设之间进行通信。而TMS320LF2407只有一个SCI串口通信模块,因此需要扩展多路RS232串口通信。选用了由TI公司生产的异步通信芯片TL16C554A,来实现主控制器与与其它模块的RS232通信。通过硬件电路和软件设计,成功的扩展了4路串行通信,满足了DSP与外设通信的要求,并通过将程序下载到DSP调试运行,充分证实了方案的可行性。 关键词 通信接口 扩展 异步通信 TL16C554A 1 引言 数字信号处理器(DSP),以其良好的性能及高速处理数据的能力,广泛应用于电子工业领域。而它的外设接口,通信接口数量有限,在有多个外设时往往不能满足多路通信的要求,这就需要我们对它进行一定的扩展。 2 TMS320LF2407A 态CMOS技术,使得供电电压降为3.3V、减小了控制器的功耗;40MIPS的执行速度使得指令周期缩短到25ns,从而提高了控制器的实时控制能力;两个事件管理模块EVA和EVB,每个包括两个16位通用定时器和8个16位的脉宽调制(PWM)通道;可扩展的外部存储器总共192K字:64K字程序存储器,64K字数据存储器和64K字UO寻址空间;看门狗定时器模块(WDT);最小转换时间为500ns的10位A/D转换器;控制器局域(CAN)2.OB模块;串行通信接口(SCI); 16位的串行外设接口模块(SPI );基于锁相环的时钟发生器;5个外部中断;电源管理包括3种低功耗模式,并且能独立将外设器件转入低功耗模式。 3 异步通信芯片TL16C554A TL16C554A是由四个改进的TL16C550C芯片加上逻辑控制电路集成而成的异步串行通信芯片。其内部结构图如图2。 图1 TMS320LF2407A的PGE封装图 TMS320LF2407A是TI专为电机的数字化控制应用而设计的一款低成本、低功耗、高性能的数字信号处理器,其PGE封装图如图1所示。它基于TMS320C2XXDSP的CPU核,与TMS320系列DSP代码兼容,主要用于数字电机控制领域,采用高性能静收稿日期:2006-08-09 图2 TL16C554A的内部结构 18 航天制造技术 2006年10月第5期 每片TL16C554A均含有4 路异步通信单元(ACE: Asynchronous Communications Element)。每路ACE 均可独立接收外围设备的串行数据,并将其转换为并行数据供CPU 使用,也可将CPU的并行数据转换为串行数据发送到外围设备。TL16C554A 3.3V供电,与TMS320LF2407A电平匹配。 采用串行数据发送格式:一位起始位,5~8位的可编程数据长度,可选的偶校验、奇校验或无校验模式,1/1.5/2位停止位。 可 具有内部错误诊编程为65535中不同速率的波特率;断功能,能检测出帧错误、奇偶错、数据超载等错误。 有FIFO和TL16C450两种工作模式。在FIFO模式下,每路ACE 的接收器和发送器均有16 字节大小的先进先出(FIFO)的缓存,以减少引起CPU 的中断次 表1 TL16C554A的片内寄存器 DLAB A2 A1 A0 读模式 写模式 0 0 0 0 接受缓冲寄存器 发送保持寄存器 0 0 0 1 中断允许寄存器 Х 0 1 0 中断标识寄存器 FIFO控制寄存器 Х 0 1 1 线路控制寄存器 Х 1 0 0 Modnm控制寄存器 Х 1 0 1 线路状态寄存器 Х 1 1 0 Modnm状态寄存器 Х 1 1 1 高速暂存寄存器 高速暂存寄存器 1 0 0 0 波特率因子寄存器低位 1 0 0 1 波特率因子寄存器高位 数。在TL16C450模式下,每路ACE相当于一个实现并行数据与串行数据转换的移位寄存器,每接收/发送到一个数据触发一次接收/发送中断(中断允许的情况下)。 TL16C554A 的每路ACE 内部均有13 个寄存器,这些寄存器分别用于实现通信参数的设置、FIFO 的控制、对线路及MODEM 的状态访问、数据的发送和接收以及中断管理等功能。由线路控制寄存器的除数锁存器访问位DLAB,A0、A1、A2 三条片内寄存器选择线,/IOR 和/IOW 一起访问TL16C554A 的任何一个寄存器。表1给出了访问这些寄存器的DLAB、A0、A1、A2 以及读写的状态。 两个8 位波特率因子寄存器可构成一个16 位波特率因子寄存器。波特率因子可以通过下列算式求出: 波特率因子=外部输入时钟频率/(16×波特率)可以任意选择写入波特率因子的高字节和低字节的顺序,但写入前必须将线路控制寄存器(LCR)的D7(DLAB)位置为1。写入波特率因子后应将线路寄存器的D7 位恢复为0,以便访问其他寄存器。 4 多路串口通信电路设计 图3的车载自动跟瞄系统是为实验室设计的典型的光机电一体化设备,该系统装载在小型车体上,跟踪部分由方位、俯仰、横倾三轴进行定位,通过安装在设备上的光源发出的光对跟踪目标——光靶进行瞄准,光靶将光线反射回,经过透镜聚焦于光线接收装置——PSD板上,PSD板将光斑的位置以模拟信号 的形式传递给控制电路,然后经过中央处理器的处理,对各个轴的驱动电机进行控制。整个装置有两个俯仰电机,两个小车驱动电机,一个横倾电机,一个方位电机,还有一个PSD板,一共需要8路通信。我们使用了两块TMS320LF2407A,分别对每个DSP运用TL16C554A扩展了四路串行通信。DSP与TL16C554A的连接原理图如图4。 图3 车载自动跟瞄系统 192006年10月第5期 航天制造技术 VCCINTAINTBINTCINTDCSAY0Y1Y2Y3LV138DA0A1A2E13.3V1A1B2B74LVC32A2Y1Y2AXINT2XINT1CAP1/QEP1/IOPA3CAP2/QEP2/IOPA4CAP3/IOPA5A3A4A5ISA0-A2种捕获方式比查询方式具有更高的效率。捕获单元的跳变检测方式同样是可编程的,这里必须设置为上升沿检测。 TXA,TXB,TXC,TXD,RXA,RXB,RXC,RXD分别为TL16C554A的四个串口数据的发送和接收,在本实例中,它们分别对应一个RS232接口,每个串口对应一个电机。 2407A的IOPF4,IOPF5F分别用来查询WERDTL16C554ACSBCSCCSDA0-A2D0-D7TXA-TADRXA-RADTXRDYRXRDYRESETGNDXTAL12407AD0-D7SerialA,B,C,D3.3VVCCGNDIOPF4IOPF5IOPF6IORIOWCLKINTL16C554A的发送和接收状态。IOPF6用来对 TL16C554A 进行复位。当IOPF6输出高电平时,TL16C554A复位。我们使用了1.8432MHz的晶振作为TL16C554A的时钟。采用1.8432MHz的晶振,进行9600bps或19200bps串行通信时,没有时钟误差。 5 软件设计 TL16C554A的初始化主要包括复位TL16C554A,设置波特率,数据格式,使能接收中断等。TL16C554A的寄存器对应的地址是DSP的I/O地址,因此,在程序设计中,定义了DSP读写I/O的宏定义函数INMAC和OUTMAC。TL16C554A的每路ACE均有独立的中断输出,对于四路ACE的中断,采用事件管理模块EVA的捕获单元捕获中断脉冲,来请求中断处理。 TL16C554A程序文件“tl16554a.c”: #define B14_MSK 0x4000 /*位屏蔽14*/ #define B6_MSK 0x0040 /*位屏蔽6*/ #define _BASE_ADD_A 0000h /*各路ACE基地址*/ #define _BASE_ADD_B 0008h #define _BASE_ADD_C 0010h #define _BASE_ADD_D 0018h #define STR(x) #x #define OUTMAC(address,data) \\ 。。。。。。 #define INMAC(address,data) \\ 。。。。。。 #define PFDATDIR 0x7096 /*端口A数据和方向控制寄存器地址*/ #define EVAIFRC 0x7431 /*EVA中断标志寄存器C*/ for(i=0;i<=c554a_d_j;i++) 16c554的初始化 图4 DSP与TL16C554A的连接原理图 /CSA,/CSB,/CSC,/CSD 是四路ACE的选通信号,TMS320LF2407A通过A3,A4,A5地址线和I/O空间选通引脚/IS作为74LV138D的输入信号对它们进行选通。加上/WE,/RD信号就可以访问TL16C554A的任一寄存器。四路ACE的I/O地址分别为000000~000111,001000~001111,010000~010111,011000~011111(A5A4A3A2A1A0)。 INTA,INTB,INTC,INTD分别为四路ACE的中断输出引脚,因为2407A只有两个中断引脚,所以我们选用了74LVC32A来对INTA,INTB,INTC进行异或并把输出接到2407A的XINT2引脚,而INTD直接接到2407A的XINT1引脚,将XINT1,XINT2设置为上升沿检测,并将INTA,INTB,INTC分别接到DSP的CAP1/QEP1/IOPA3,CAP2/QEP2/IOPA4,CAP3/IOPA5通用输入/输出引脚。这样当XINT2发生跳变时,我们就可以查询到是哪一路ACE请求中断。 CAP1/QEP1/IOPA,CAP2/QEP2/IOPA4,CAP3/ IOPA5是复用引脚,可编程设置为基本功能或一般I/O口。用于查询哪路ACE触发中断时,必须设置为一般I/O口。这三个复用引脚的基本功能可作为DSP的事件管理模块EVA的捕获单元的输入引脚。事件管理模块的捕获单元主要用于脉冲宽度的检测。当捕2,3;获输入引脚CAP×(对EVA为1,对EVB为4,5,6)上检测到所选的跳变时,所选的GP定时器的计数值被捕获并存入到一个2级深的FIFO栈中。与此同时,相应的中断标志位被置位,如果该中断标志没有被屏蔽,则外设中断将产生一个中断请求信号,请求对FIFO栈的数据进行处理。因此,TL16C554A的中断输出引脚INTA、INTB、INTC的跳变,可采用捕获单元进行捕获。在DSP响应捕获单元的中断服务程序中,进行TL16C554A的中断处理。采用这20 航天制造技术 2006年10月第5期 void c554a_init(void) /*TL16C554A初始化*/ { volatile unsigned int *temp_d; temp_d=(volatile unsigned int*)PFDATDIR; *temp_d |=(B14_MSK|B6_MSK); /*IOPF6输出高电平,复位TL16C554A*/ wait_ms(10); *temp_d &=(~B6_MSK); /*初始化TL16C554A寄存器*/ temp=0x80; /*使能波特率因子寄存器访问*/ OUTMAC((_BASE_ADD_A+3h),temp); 。。。。。。 temp=0x06; temp=0x00; 。。。。。。 /*设置波特率为19200*/ OUTMAC(_BASE_ADD_A,temp); OUTMAC((_BASE_ADD_A+1h),temp); temp=0x03; /*8位数据位,1位停止位,无奇偶校验,禁止波特率因子寄存器访问*/ OUTMAC((_BASE_ADD_A+3h),temp); 断*/ 。。。。。。 temp=0x01; 。。。。。。 /*使能接收中断*/ 。。。。。。 temp=0x07; /*使能FIFO,1个字符触发接收中 6 结束语 通过异步串行芯片TL16C554A完成了对TMS320 LF2407A扩展串口,其硬件接口简单,使用经济。该电路及其软件经与微机的通信实践证明,在波特率为19200时可实现与PC机的可靠通信。 参考文献 1 Texas Instruments Incorporated. TMS320LF2407A,TMS320LF2406A,TMS320LF2402A,DSP CONTROLLERS. SPRS145K,JULY2000 2 Texas Instruments Incorporated 著.徐科军等译.TMS320LF/LC24系列DSP的CPU与外设.淸华大学出版社, 2004 3 Texas Instruments Incorporated. TL16C554A,TL16C554AI ASYNCH RONOUS-COMMUNICATIONS ELEMT. SLLS509B,AUGUST,2001. 4 徐惠钢,薄煜明. PC/104标准四串口通信板设计.电子工程师, 2003,29(1) { temp=data; OUTMAC(_BASE_ADD_A,temp); }。。。。。。 16c554的接收 void c554a_a_rec() /*A模块数据的接收处理*/ { volatile unsigned int ad; INMAC(_BASE_ADD_A,temp); ad=temp; c554a_a_sent(ad); } 。。。。。。 OUTMAC((_BASE_ADD_A+1h),temp); INMAC(_BASE_ADD_A,temp); /*将串口干扰读走*/ 。。。。。。 } 16c554的发送 void c554a_a_sent(unsigned char data) /*A模块数据发送*/ 作者简介 米月琴(1982-),女(汉族),山西省忻州市人,硕士,控制理论与控制工程专业;研究方向:光机电一体化自动跟瞄平台。 21

因篇幅问题不能全部显示,请点此查看更多更全内容