摘要:TERN公司开发的586-Engine微操控模块具有精度高可靠性高的特色,适用于工业程序操控和高精度数学核算。为了完结高实时性、高传输波特率的要求,本文提出了一种依据UR8的异步串行通讯扩展计划,并完结体系的软硬件规划。文中详细介绍了依据UR8的串口扩展办法,给出了接口规划电路原理图、初始化装备例程以及程序流程图,并对规划细节进行了详细论述,终究给出试验成果。
关键词:586-Engine;UR8;嵌入式模块;串口扩展
异步串行通讯是一种串行数据传输协议,用于双向通讯,可以完结半双工和全双工传输,因其结构简略、规划便利、价格低廉、占用资源少、传输距离远等优势而得到广泛运用。近年来串行通讯正朝着带宽、速度、稳定性逐渐增强的方向开展。586-Engine是TERN公司推出的一款为了高精度和高可靠性的植入式运用所规划的中心板卡,运算速率高,适用于工业程序操控和高精度的数学核算。该板卡供给了2路异步串行通讯接口,这在许多运用场合远远不够。
为了添加串口数量并确保较高的传输速率,运用高性能的UR8扩展卡是一种可行计划,本文结合UR8串口扩展卡在586-Engine上的成功运用,对UR8串口扩展办法进行详细介绍。
1 器材介绍
586-Engine是TEBN公司出产的依据AMD Elan SC520处理器的C/C++可编程微操控模块,成本低,功耗低,结构紧凑。它供给了多种算法指令用于处理各类数字格局以及正弦、余弦、正切、对数等逾越函数,拿手高强度的运算运用。
586-Engine的主要参数目标如下:
1)CPU是主频为133 MHz的32位AMD ElanSC520处理器,兼容Inte180x86;
2)尺度为3.6*2.3*0.3英寸,适用温度为-40℃-85℃;
3)支撑114字节内置RAM,高达512KB电池供电的SRAM,512 kB的Flash,不支撑SDRAM、PCI、DMA。
4)供给两个工业规范通用异步串口(UART),最高到达1.152 Mbit/s。
5)供给32路多功用I/O总线。包含一共19路12位模数转化器,其间11路串行模数转化和8路并行模数转化;6路12位数模转化器,其间2路串行数模转化和4路并行数模转化。
6)可编程中止操控器(PIC)支撑22个中止优先级,包含15个外部中止。共有7个定时器,其间1个可编程内部定时器,3个16位PIT定时器和3个16位GP定时器。
UR8是TERN公司出产的8路异步串口扩展卡。它供给了多种串口作业办法,如RS232、RS485、RS422。其间心部件是2片TL16C754B 芯片,每片TL16C754B具有4路异步串口,每个通道具有64字节的发送FIFO和64字节的接纳FIFO。在FIFO形式下,可以减小CPU的中止数量并下降软件开支。它有3种作业形式:查询形式、中止形式和DMA形式,并可编程挑选中止和DMA形式的FIFO深度。它供给了可编程的波特率发生器用于发生14种不同的波特率,最高波特率可达230400bit/s,可见UR8的串口传输速度十分快。
2 硬件规划
2.1 UR8扩展卡串口的可装备计划
UR8扩展卡供给了3种可装备的串口规范计划(即RS232、RS485、RS422)以满意不同的需求。其间8个串口均可装备为RS232串口规范;COM2-COM5 4个串口可装备为RS485串口规范;COM2可装备为RS422串口规范。若选用后两种计划与PC机进行通讯需在中心加装一个RS232/RS485转化器。以上3种装备计划均已成功运用,本文仅以RS232为例对该办法进行介绍。
2.2 接口电路原理框图
586-Engine的数据总线D0-D7衔接到UR8的D0-D7,用于双向数据交换,/RD和 /CS1别离和UR8内部HCT245芯片的DIR及G相连来挑选传输方向;586-Engine的地址总线A1、A2、A3、写使能端/WR、读使能端/RD以及RST与UR8的A0、A1、A2、写使能端/WR、读使能端/RD以及RST相连,完结TL16C754B的片内寄存器寻址和读写操控;586-Engine的地址总线A4、A5、A6、A7与UR8的A4、A5、A6、A7相连,经过TL16C754B内部译码器芯片进行译码完结片选功用。
UR8的8个串口(COM2-COM9)选用RS232通讯办法。可以选用两种计划进行试验,第一种是UR8的8个串口与8台PC机一起通讯,第二种是 UR8的8个串口级联的接线办法,为了操作简练选用第二种计划,即:外部数据发送到COM2的接纳端/RXD2,/TXD2连到/RXD3,/TXD3连到/RXD4,以此类推,终究数据由COM9的发送端/TXD9发送到PC机的接纳端,经过串口调试帮手检测数据的正确性和完整性。整个接线联系如图1所示。

3 软件规划
3.1 UR8的初始化装备
TL16C754B内部寄存器地址如下表所示,每一个串口的界说都完全相同。

UR8的地址设置十分灵敏,每个通道的基地址可以自由挑选,选用基地址加偏移量的办法可以确认各寄存器的地址,然后就可以对各寄存器进行读写操作。值得注意的是,A0没有运用,各偏移量和基地址为偶地址,这样就添加了体系的抗干扰才能。
UR8是一款可灵敏挑选装备的扩展卡,其每一通道的初始化装备均可依据实际需求来进行。下面以串口2为例,给出初始化装备。

3.2 串口函数阐明
void qur_init(char ch,unsigned char baud)//ch=2—9,串口初始化
void put_ch(char ch,unsigned char dat)//串口数据发送函数
unsigned char qur_hit(char ch)//查看接纳FIFO是否有数据
unsigned char get_ch(char ch) //串口数据接纳函数
3.3 程序阐明
软件规划流程图如图2所示,程序选用次序查询形式,顺次查询COM2-COM9的接纳FIFO中是否有数据,假如有数据则存储数据再将存储的数据宣布;假如接纳FIFO中没有数据,则持续查看下一个串口。结合硬件的连线办法,一帧数据就会在8个串口间循环一次。每一通道都有各自的接纳/发送FIFO和寄存器,各自数据的接纳和发送不受影响。

3.4 调试成果
调试进程中,PC机串口发送端与UR8的串口2的RXD2相连,发送的数据经过串口发送端顺次经过COM2、COM3、COM4、COM5、COM6、 COM7、COM8、COM9,终究由COM9的发送端TXD9传送到PC机的串口接纳端,构成一个数据循环传输的进程。PC机经过串口调试帮手操控串口的发送和接纳,详细调试原理如图3所示。

串口调试帮手当波特率设定为115 200 bit/s,一帧数据为01到40个字符时,逐渐减小每帧数据的发送距离,终究测验得到的最短时刻距离为20 ms。即每20 ms发送一帧数据。PC机接纳到的数据显现在窗口中,试验终究成果如图4所示。

从成果可以看出,接纳窗口接纳到的数据没有误码,阐明数据在各个串口的接纳发送进程中没有呈现过错;界面最下面显现S:153000 R:153000,发送和接纳的字节数持平,阐明没有丢掉数据。
图5给出了时刻距离减小到19 ms的试验成果,从接纳窗口可以看出第4行39、40两个字符被01、02代替,阐明串口发送一帧数据所需求时刻现已大于PC机发送一帧数据的时刻距离,串口还没发完一帧数据现已被强制执行下一次的发送指令,第8、15、17、22行反映了相同的问题。阐明20 ms为这种扩展计划的极限值。

调试成果阐明,运用UR8成功地扩展了586-Engine的异步串行通讯才能。
4 定论
本文介绍的这种串行通讯扩展计划具有显着的优越性:一是添加了8个串行通讯接口,可以与更多的设备进行衔接,极大地提高了586-Engine的异步串行通讯才能;二是因为586-Engine内核处理数据的速度极快并尽最大极限的紧缩程序所占用时刻,使得这种UR8串口扩展计划到达很高的传输速率,可以满意譬如飞控核算机这种高实时性、高运算量设备的规划需求;三是UR8不仅能扩展到586-Engine,还能直接扩展到A-Engine、i386- Engine、i386-Drive、586-Drive等TERN公司出产的板卡,省去了规划接口电路的费事。试验证明,在实时性高、传输波特率高、 CPU运算量大的情况下,运用UR8进行串口扩展是一种很有用的计划。