文献标识码:A
DOI:10.16157/j.issn.0258-7998.190261
中文引用格式:杨庆国,陈军,肖贵林. 基于TMS320C6748的多路串行通信接口设计与实现[J].电子技术应用,2019,45(7):59-62.
英文引用格式:Yang Qingguo,Chen Jun,Xiao Guilin. Design and implementation of multi-channel serial communication interface based on TMS320C6748[J]. Application of Electronic Technique,2019,45(7):59-62.
0 引言
微处理器DSP是一种为实现数字信号处理算法而生的器件[1],其硬件结构上的特殊性表现在内部存储器采用程序总线和数据总线分开的哈佛结构,具有专门的硬件乘法器[2]。但在嵌入式DSP系统应用领域中,一般需要它同时与多个外部设备进行数据交互和通信[3],其中串行通信接口因其简单可靠,仍是目前广泛采用的技术[4],而当前的DSP的串口较少,满足不了多路串行通信接口能力。
本文采用高速浮点处理器DSP作为嵌入式飞行控制系统的核心处理芯片,可实时地完成系统运算和控制,充分发挥DSP在数字信号处理方面的技术优势[5]。设计了一种基于TMS320C6748的多路串行通信接口电路,采用异步通信协议芯片TL16C754和3-8译码器74LS138实现多路串行通信接口的集成与扩展,底层驱动基于TI的实时操作系统内核SYS/BIOS进行开发。不但减小了软件开发难度,而且可以保障系统的稳定性,使得开发周期大大缩短。
1 硬件电路设计
1.1 系统架构设计
基于DSP处理器的多路串行通信接口系统(以下简称接口系统)主要由控制电路和接口电路组成,系统架构如图1所示。其中,控制电路是系统的核心处理模块,主要包括DSP处理器、存储器、复位电路、时钟电路、电源电路和JTAG等辅助电路;接口电路是实现多路串行通信的模块,主要包括协议处理器、译码器、隔离电路和电平转换电路等。
1.2 控制电路设计
核心处理器DSP选用TI的浮点运算低功耗芯片TMS320C6748,其主频为456 MHz,具有高达3 648 MIPS和2 756 MFLOPS的运算能力。
时钟电路采用时钟信号为24 MHz OSC外部时钟晶体输出。
电源电路采用集成电源供电方式,即内核电压和I/O电压通过同一块电源模块供电,内核电压为1.2 V,I/O电压为1.8 V和3.3 V,本系统采用了效率较高的电源管理芯片TPS650061RUK,其效率可以到90%,而且要求的压降小。
复位电路采用基于IPM811复位芯片进行设计,该芯片不仅具有上电复位和手动复位功能,而且还具有电源电压监控功能,可输出最小持续时间为140 ms的低电平有效复位信号。
RAM存储器采用TI的低功耗高速RAMMT47H64M16芯片,可为DSP提供更大的程序执行/数据存储空间。Flash存储器采用SPANSION公司的S29GL128N芯片,用于系统软件的固化存储。
1.3 接口电路设计
协议处理器采用TL16C754芯片,它是一款通用异步串行通信控制器,具有自动软件/硬件流控制能力,具有可以储存、缓冲两个异步时钟之间数据传输[6]的64字节FIFO,并且通过可编程实现不同触发水平来中断;可编制数据为5 bit、6 bit、7 bit或8 bit,用于UART并行数据和串行数据的格式转换。译码器采用3-8译码器74LS138芯片,可进行8 bit数据转换。
系统通过TMS320C6748的EMIF数据总线与16C754A的8 bit数据总线连接,将TL16C754的地址配置在EMIF映射空间内,TMS320C6748的EMIF地址总线通过3-8译码器74LS138用于扩展8 bit片选信号,实现对8路RS422接口信号的选通。
隔离电路采用ADI公司的六通道数字隔离器ADuM7643,实现接口电路的数字隔离。
电平转换电路采用驱动总线收发器MAX490,实现RS422信号收发功能。它是一款低功耗收发器,用于RS422等串行数据接口标准系统中[7],内部有驱动和接收两个模块,最大传输速率为2.5 Mb/s。
在硬件设计中,采用EMIF接口8位数据线与TL16C754端口一一对应,保证DSP与外部设备的正常通信,当外部数据发送过来,会触发DSP的外部中断。在译码器电路中,通过3个地址信号产生8路不同的片选信号,当译码器产生一路选通,对应的并行数据就会传输到总线上,等待接收,接口电路原理图如图2所示。
2 驱动软件实现
DSP驱动软件是基于TI的SYS/BIOS操作系统进行设计开发,开发环境选择CCS5.5(Code Composer Studio)。系统的软件分为:系统初始化模块、UART驱动模块、系统中断模块。利用SYS/BIOS的多线程中断控制来实现多路串行通信接口的功能,系统上电后硬件系统自动将Flash存储器中的程序加载到256 KB的片内存储器中开始运行。
首先,执行对设备的CPU初始化,运行cinit初始化运行环境,调用SYS/BIOS系统函数初始化系统配置;然后调用main函数,完成EMIF总线与时钟等的初始化,完成系统自检、数据结构初始化、UART初始化等工作。在main函数结束返回后,调用BIOS_start,使能硬件中断,开始按优先级检测并执行串口硬件中断服务子程序,软件的功能在这些中断任务的驱动下完成,串口中断主要完成数据的接收。
本系统的软件主要由DSP完成EMIF总线的读写时序和TL16C754的寄存器控制信号。
(1)系统的初始化。初始化主要包括PLL配置,管脚复用控制寄存器(PINMUXReg)的配置,电源控制寄存器(PSC)的配置。因为TMS320C6748的管脚大多是复用的,所以需要根据应用条件配置相应的PINMUX寄存器。PSC是C67x的一大特色,通过配置PSC可独立控制芯片某一部分的供电,可以最大限度地降低功耗。
(2)GPIO中断配置。TMS320C6748没有独立的外部中断引脚,是通过配置GPIO作为中断源信号,在配置中断时应注意配置中断的方向和触发方式。
(3)时序控制。通过配置CE4CFG寄存器对CE4空间的读写操作进行控制。CE4CFG可以控制建立、选通、保持时间和数据宽度。本文将UART扩展在EMIFA的CE4空间商,CE4扩展空间的基地址为0x64000000,对UART进行读写操作时,对0x64000000地址进行操作即可。DSP处理器通过WE、OE和CE4信号控制串口芯片,但需要3 bit地址线和CE4通过译码器片选8路UART信号。DSP对异步接口的读取周期由建立时间、选通时间和保持时间组成。其关键程序设计如下:
EMIFWaitTimingConfig(SOC_EMIFA_0_REGS,CHIP_
SELECT_4,EMIFA_ WAITTIME_CONFIG(1,2,1,1,2,1,0));
(4)多路UART中断控制。TL16C754芯片提供4路中断信号,所以采用8路UART共享一个中断资源的方式,在SYS/BIOS中调用中断4(INT4)并行处理8路UART数据,其中断处理流程如图3所示。
3 系统试验验证
3.1 单路串行接口测试
随机选取一路串口进行试验测试。首先,将接口系统的通信接口与PC的RS232串口相连,PC按指定的配置参数启动串口通信,利用上位机测试软件,向接口系统发送数据。该接口系统采用中断方式对串口数据进行接收,数据接收完整后,接口系统会将数据转发出来,PC收到后将其与原始数据比较,检验是否一致,若一致,上位机测试软件显示串口测试成功,其测试结果如图4所示。试验结果表明,单路串行通信接口数据传输完整可靠。
3.2 双路串行接口测试
现场测试时,随机选取接口系统的两路RS422串口与外部的GPS接收机和IMU的串口连接,接口系统的通信接口与PC的RS232串口连接。利用两个串口同时接收GPS接收机和IMU数据帧,存入相应的数据缓存单元。接口系统DSP内部驱动不断检测是否接收到一帧的GPS和IMU数据,若正确收到,则利用上位机测试软件显示出来,并以数据文件的格式存储下来。试验测试后,打开数据文件,所设计的多路串行通信接口能完整地接收GPS和IMU数据。其测试结果如图5所示。试验结果表明,双路串行通信接口数据传输完整可靠。
4 结论
本文对基于DSP的多路串行通信接口系统进行了设计,该系统硬件接口电路简单,调试方便。采用DSP的EMIF控制方式完成数据的传输,通过异步通信协议芯片和译码器实现接口的集成与扩展,解决了DSP内部存储器与外设之间数据传输的速度问题,减轻了DSP的运算负荷,提高了串行通行的实时性和可靠性。底层驱动基于SYS/BIOS实时操作系统设计开发,不但减小软件开发难度,而且可以保障系统的稳定性,使得开发周期大大缩短。通过试验测试,所设计的多路串行通信接口系统能够接收多路数据,数据传输完整可靠,现已应用于某预研项目中,为其后续的开展提供了有力保障。
参考文献
[1] 于凤芹.TMS320C6000DSP结构原理与硬件设计[M].北京:北京航空航天大学出版社,2008.
[2] 张晓峰,李悦丽,黎向阳,等.一种基于FPGA和SC16C554实现多串口通信的方法[J].电子技术,2009,46(6):34-36.
[3] 李海洋.基于DSP和FPGA的多功能嵌入式导航计算机系统设计[D].南京:南京航空航天大学,2003.
[4] 刘凤新,赵坚固.基于FPGA的多路并行独立串口的实现[J].仪表技术与传感器,2010(11):44-46.
[5] 史晓锋,李铮,蔡志权.基于DSP的高速数据采集与处理系统[J].电子技术应用,2001,27(6):78-80.
[6] 喻少林,韩波,李平.基于FPGA的飞控计算机多路串行通信设计[J].计算机工程,2011,37(20):242-245.
[7] 蒋艳红.基于FPGA的UART设计与应用[J].计算机工程,2008,34(21):225-226.
作者信息:
杨庆国,陈 军,肖贵林
(湖南云箭集团有限公司,湖南 长沙410100)