首页 > 范文大全 > 正文

基于DSP的RS-232\RS-422串行收发系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于DSP的RS-232\RS-422串行收发系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:针对在噪声干扰比较大的工业环境下对RS-422通信的需求,该设计采用TMS320F2812作为主处理器,利用外部接口(XINTF)和片内的两路SCI异步串口,并通过可编程逻辑器件EPM240T100C5N(CPLD)与两片MAX3160连接,实现了上位机和下位机之间、下位机和下位机之间的RS-232通信、RS-422通信。

关键词:RS-422;DSP;串口通信

中图分类号:TN919文献标识码:A文章编号:1009-3044(2011)04-0900-02

Design of Serial Transceiver about RS-232 and RS-422 Based on DSP

DING Gao-lin, ZHENG Bin

(National Key Laboratory for Electronic Measurement Technology, North University of China, Taiyuan 030051, China)

Abstract: In the industry-environment with strong noise, the RS-422 communication is used greatly. According to this requirement, TMS320F2812 is adopted as the main processor, and connected with two MAX3160 through EPM240T100C5N(CPLD) utilizing the XINTF and two inner SCI UART, to male the communication between PC and DSP or between DSP and DSP comes true in this design.

Key words:RS-422;DSP; serial communication

RS-422协议抗干扰能力强而且数据传输速率快,在工业生产时系统间的通信应用已经非常广泛。TI公司的TMS320F2812有两路SCI异步串口,系统将其中一路(SCIA)经过MAX3160芯片转换扩展为RS-232接口,另一路(SCIB)经过MAX3160转换扩展为RS-422接口,其中对MAX3160的不同配置通过CPLD译码来实现,CPLD和DSP之间通过外部接口XINTF进行通信。

1 系统方案设计

所设计的RS-422串行收发系统主要由DSP控制电路、CPLD逻辑电路、RS-422收发电路、RS-232收发电路等组成。其中DSP控制电路完成总线数据的读写,CPLD逻辑电路完成对SCI串口模式的配置,RS-422、RS-232收发电路分别完成422数据、232数据的接收和发送工作。系统原理框图如图1所示。

2 系统硬件设计与实现

图1中的DSP控制电路选用TI公司的32位定点DSP TMS320F2812,工作主频最高可达150MHz,片上集成两路SCI接口,64K种可编程通信速率,支持16级接收和发送FIFO[1]。RS-422和RS-232接口电路采用MAX3160芯片进行转换,兼容DSP的3.3V供电,可以通过CPLD译码电路任意配置MAX3160接口模式,工作在RS-422模式,最高可达10Mbps的数据传输速率;工作在RS-232模式可达1Mbps,兼容全双工和半双工通信协议。CPLD采用EPM240T100C5N芯片,有240个逻辑单元,等效宏单元是192个,兼容3.3V供电,支持高达300MHz的内部时钟,具有实时在系统可编程能力。

图2为RS-422、RS-232收发部分的硬件主要部分的连接图。DSP通过CPLD来实现对MAX3160工作模式的配置。每片MAX3160接入CPLD作为被控信号的有四个引脚:DE485/T2IN、FAST、HDPLX、RS422/RS232,其中DE485/T2IN为异步串口通道控制引脚,使能或者禁止RS-422模式下的发送功能;FAST为异步串口通道接口信号转换率控制引脚,值为0是低转换率,值为1是高转换率;HDPLX为异步串口通道接口标准RS422/RS485选择引脚,值为0是422方式,值为1是485方式;为异步串口通道接口标准选择引脚,值为0选择RS-232标准,值为1选择RS-422/RS-485标准。

TMS320F2812通过外部接口XINTF连接CPLD,F2812的四根地址线XA8、XA9、XA10、XA11和写使能信号线以及区域0和区域1的片选信号线共同译码,来使能CPLD读取XINTF模块数据总线XD0-XD7的值,进而配置MAX3160的四个引脚状态,决定MAX3160的工作方式。比如可以将MAX3160的工作模式控制口扩展在F2812的ZONE1空间,即0x004000-0x005FFF,若选择XA11-XA8的值为0001,则MAX3160的工作模式控制口地址为0x004100。若CPLD将XD7-XD0的值直接赋给IO7-IO0,则要配置SCIA为RS-232方式,SCIB为RS-422方式只需往地址0x004100写值:0x00A2即可。另外,要将匹配电阻R1和R2省去。

3 系统软件设计

整个系统的工作是在上位机的命令下工作的,为了能够实时响应上位机的操作命令,RS-232通信采用中断接收的方式,发送数据采用查询方式;而下位机之间的RS-422通信采用FIFO中断接收方式和查询发送方式(查询ScibRegs.SCICTL2.bit.TXEMPTY位是否为0),有效削减了串口通信时CPU的开销。SCIB关键源代码[3]如下所示:

unsigned int * MAX3160_MODE =

(unsigned int *) 0x4100;

* MAX3160_MODE = 0x00A2;

// SCIA为RS232方式,SCIB为RS422方式

ScibRegs.SCICCR.all = 0x27;

//1bit停止位,奇校验,字符长度:8bit

ScibRegs.SCICTL1.all = 0x03;

//使能TX、RX

ScibRegs.SCICTL2.all = 0x02;

//使能接收中断,禁止发送中断

ScibRegs.SCIHBAUD = 0x00;

ScibRegs.SCILBAUD = 0x02;

//异步波特率=37.5MHz /((BRR+1)*8) =1.5625MHz

ScibRegs.SCICTL1.all = 0x23;

//使SCI退出复位

ScibRegs.SCIFFTX.all=0xE040;

ScibRegs.SCIFFRX.all=0x6069;

//接收FIFO中断级别为9

ScibRegs.SCIFFRX.bit.RXFIFORESET=0;

ScibRegs.SCIFFRX.bit.RXFIFORESET=1;

……

Interrupt void SCIRXINTB_ISR(void) //SCIB FIFO中断接收子程序

{

unsigned int Scib_VarRx[9];

for(n=0;n

ScibRegs.SCIFFRX.bit.RXFFINTCLR=1;//清楚FIFO INT中断标志

PieCtrl.PIEACK.bit.ACK9 = 1;//响应中断

}

图3为该系统发送数据0x5B时得到的测试结果。在波特率为1.5625MBps时,传送10个bit,即一个起始位,8个数据位,一个奇校验位(此时为0)需要的时间是:6.4us,从图中可以看出结果是正确的RS-422差分信号。

上位机程序由LABVIEW编写,主要功能是通过RS-232异步串口控制DSP和其它具有RS-422通信接口设备之间的数据传输[2]。工作界面如图4所示。系统开始工作前,首先点击“通信自检”按钮,进行PC、DSP和其它RS-422设备之间通信是否正常的测试,PC根据反馈结果做出判断并显示结果;若通信正常,则可以命令DSP进行各种控制波形的数据产生和发送,以及命令DSP将数据通过RS-232串口发回PC进行保存和显示;否则进行设备检查,直到通信自检正常。

4 结束语

设计了基于dsprs-232rs-422异步串行收发系统,利用CPLD做DSP的译码逻辑控制,使得DSP具有很好的扩展性,通过和PC、FPGA板卡的联机调试,该系统具有接口配置灵活,传输速率快,抗干扰性强等优点。

参考文献:

[1] 孙丽明.TMS320F2812原理及其C语言程序开发[M].北京:清华大学出版社,2008.

[2] 侯国屏.LabVIEW 7.1编程与虚拟仪器设计[M].北京:清华大学出版社,2005.

[3] 谭浩强.C程序设计[M].2版.北京:清华大学出版社,1999.