智能通讯总线

2024-08-03

智能通讯总线(共7篇)

智能通讯总线 篇1

引言

随着综合化、模块化航空电子系统发展,机电管理系统开始进入分布式采集、集中解算、综合管理阶段,机电管理系统向着集成化、数字化、系统信息共享与综合化的方向发展。

数据交换属于机电管理系统的重要部分,对于一些没有实现数字化控制的系统信号,通过数据采集系统进行数据采集和处理,并通过智能通讯总线接口向机电管理系统传送数据。智能通讯总线接口模块在数据采集系统与机电管理系统的数据传输方面有着重要的作用。

本文重点介绍智能通讯总线接口模块的设计,主要包括系统结构、硬件配置、软件配置等。[1]

1 系统结构

智能通讯总线接口模块由PPC405内核、PCI主桥、HB6096总线电路、ARINC825总线电路组成。其中PPC405内核为智能通讯总线接口模块的处理器,PPC405内核和PCI主桥为主设备。HB6096总线电路、ARINC825总线为从设备。

智能通讯总线接口模块架构示意如图1所示。其中ARINC659总线子卡,PPC8245子卡,GJB289A子卡,MMC子卡根据智能通讯总线接口模块应用环境不同可进行配置。ARINC825子卡作为独立功能的电路包含在智能通讯总线接口模块中。

智能通讯总线接口模块上FPGA的内核PPC405通过PCI主桥访问ARINC825子卡。在不同配置下,PPC405还通过PCI主桥访问ARINC659总线子卡、GJB289A子卡和MMC子卡,并将相应的通讯数据放入FPGA内的双口RAM。PPC405通过FPGA内部的OPB总线访问HB6096 UART,实现HB6096总线通讯。主处理器可以通过该模块上的PCI从桥访问FPGA内的双口RAM,从而实现主处理器和各个模块的数据交互以及主处理器和外部的通讯。[2]

2 ARINC825总线子卡

2.1 系统结构

ARINC825总线子卡是一智能化、通用化和模块化的航空电子多路传输总线的通信处理器,包含硬件和通信软件。ARINC825总线子卡原理框图如图2所示,可以划分为三个功能区:PCI总线接口部分、ARINC825总线接口部分和通讯控制部分。

1)PCI总线接口部分实现ARINC825总线子卡与主机的背板的互连,主机通过P C I总线与ARINC825总线子卡进行数据交换。

2)ARINC825总线接口电路主要包括:2套独立的总线电缆、总线驱动器和总线控制器,来实现该节点与总线中其它节点的可靠双向通讯。同时为了增强ARINC825总线节点的抗干扰能力,2路ARINC825总线通讯接口采用2套独立的光电耦合电路,应用2套独立的DC-DC转换进行隔离供电。

3)通讯控制部分的主要功能一方面是负责ARINC825总线通讯的控制,主要包括DSP及JTAG电路、电源管理和地址译码等外围电路部分,它负责底层节点的控制、运算和调试。另一方面实现ARINC825总线和PCI接口芯片局部总线的互联,主要包括DSP处理器和双口RAM。[3]

2.2 硬件配置

2.2.1 总线接口电路

ARINC825总线接口电路采用标准ARINC825总线接口电路,由ARINC825控制器、ARINC825收发接口、2套独立光电耦合电路和DC-DC转换,从而实现和ARINC825总线的通信。

在硬件设计过程中,为了增强ARINC825总线节点的抗干扰能力,可以采取以下措施:

1)DSP的收发接口并不直接与ARINC825收发接口相连,而是通过高速光耦与ARINC825收发接口相连,这样就很好地实现了总线上各ARINC825节点间的电气隔离。

2)ARINC825收发接口各自通过电阻与ARINC825总线相连,电阻可起到一定的限流作用,保护ARINC825收发接口免受过流的冲击。

3)在两根ARINC825总线输入端与地之间分别接1个防雷击管。当两输入端与地之间出现瞬变干扰时,通过防雷击管的放电可起到一定的保护作用。

PCI总线接口电路采用PCI总线接口控制芯片实现PCI接口,主机通过该接口和ARINC825子卡进行数据交换。[4]

2.2.2 双口存储器

该模块采用存储器共享的方式来实现DSP和主机的数据交换,其中共享存储器选用了集成双口。其中左端口连接DSP控制器,右端口连接PCI总线接口控制芯片。通过双端口RAM左右端口的“忙等待”信号来实现这个共享存储器的互斥访问。通过该存取操作模式,双边CPU在无双口存储器存取权时,可进行其它任务操作,直到取得双口的存取控制权,实现CPU的无等待操作,提高CPU效率,同时防止双CPU对DPRAM的存取竞争现象,有效处理双方对同一地址单元的写操作互斥。

不论是实现PCI到ARINC825通信转换,还是实现ARINC825设备到PCI通信转换,DSP和主CPU都是通过操作在RAM中建立的发送和接收数据缓冲进行的,实现ARINC825到PCI的双向传输。

CPU模块(简称主机)可访问ARINC825子卡上的双端口存储器(简称为DPRAM)。DPRAM右端口由主机访问,左端口由ARINC825子卡内的智能器件DSP访问,主机与�DSP可异步对DPRAM进行访问;仅当同时访问同一地址单元时,由仲裁逻辑产生等待信号。

共享DPRAM用于实现发送、接收数据缓冲等。在DPRAM中分别按照发送信息结构体和接收信息结构体的格式,为每一路ARINC825通道设置了独立的发送缓冲区和接收缓冲区。此外,双口存储器中的信息还包括:主CPU对CAN子卡的控制命令,ARINC825子卡的状态信息,ARINC825通道的初始化配置信息。

2.2.3 控制电路

ARINC825子卡控制电路设计主要完成ARINC825通道的控制、ARINC825数据和PCI数据的交换,以及PCI接口信号的产生。该部分功能由一片DSP处理器可编程逻辑芯片完成。

2.2.4 通信控制器

通信控制器电路由DSP、复位电源监控电路及看门狗电路组成。

2.2.5 软件配置

通信软件由传输软件和驱动软件组成。传输软件驻留在ARINC825子卡核心处理器DSP上的Flash中,驱动软件驻留在主机上,供主机应用软件调用,实现对传输软件的控制。当ARINC825子卡加电时,DSP内部Flash中固化的传输软件实现CAN子卡传输层功能;驱动软件以一组标准函数API的形式提供给子系统主机应用软件。子系统主机软件根据任务的需求通过调用标准函数实现ARINC825总线通信。

ARINC825子卡加电进入正常工作状态之后,和主机进行正常握手之后,主机向ARINC825子卡发送命令,ARINC825子卡向主机反馈当前工作状态。

子系统主机应用软件与ARINC825通信软件的调用关系见图3。

驱动软件以一组标准函数API的形式提供给子系统主机应用软件。子系统主机软件根据任务的需求通过调用标准函数实现ARINC825总线通信。

3 结束语

智能通讯总线接口模块的设计与实现,其软硬件结构设计采用模块化、标准化思想,在数据智能通讯的设计进行了探索和实践,满足航电系统数据采集要求,稳定可靠,可广泛推广应用到航空、航天领域。

参考文献

[1]李军,李林,张晓艳.冗余CAN总线在机电管理系统中的应用研究[J].航空计算技术,2010,40(2):105-107;

[2]黄松,廖容.基于PCI总线智能通讯系统的设计与实现[J].舰船电子工程,2004,24(2):64-66;

[3]张晓伟,孙逢春.基于CAN总线的混合动力汽车监控系统开发[J].计算机测量与技术,2011,19(10):2427-2429;

[4]刘培国,周希伟.CAN总线智能检测仪的设计与实现[J].现代电子技术,2012,35(18):44-46。

智能通讯总线 篇2

ARINC429通讯总线是航空技术中广泛应用的数据传输总线,规定了航空电子设备及有关系统间的数字信息传输要求,已经广泛应用在波音及空客等机种。我国某些最新研制的机型中也以ARINC429为主要通讯总线。

1 ARINC429 总线简介

ARINC429总线协议全称是数字式信息传输 系统(DITS—Digital InformationTransfer System),具有结构简单,性能稳定,抗干扰性强,可靠性高等优点。根据规范,ARINC429数据信息通过一对单向、差分耦合、双绞屏蔽线传输 ;每条总线上可以连接不超过20个接收器 ;采用双极性归零的三态码方式,具有较强的抗干扰能力 ;传输速率为(12.5 ~ 100)kbps。

按照ARINC429总线规定,每个数据字格式(二进制或BCD码)由32位组成 :1 ~ 8位是标志码(LABEL),9、10位是源 目的地址识别码(SDI)、11 ~ 29位是数据区(Data Field)、30、31位是符号状态位(SSM)、32位是奇偶校验位(P)。在发送每组数据后有4位零周期,它是隔离符号,以便于发送下一组数据。

2 ARINC429 收发系统设计

系统原理框图如图1所示,以DSP处理器芯片F240作为控制核心 ;利用HARRIS公司的一 片HS-3282( 高性能CMOS型ARINC429数据收发芯片 ) 和一片HS-3182(ARINC429数据发送驱动芯片 ) 形成两收一发信息交换通道 , 从而构成数据收发、串 / 并及并 / 串转换的主体。采用可编程逻辑器件GAL16V8实现组合逻辑控制,提高模块的集成度。采用芯片MAX691设计了硬件看门狗监控电路和掉电保护电路,保证了硬件电路的可靠性。

HS-3282芯片低电平复位信号有效,外部工作时钟为1MHz。具有二路接收、一路发射功能 :即第一路接收(A429_DI1A、A429_DI1B)和第二路接收(A429_DI2A、A429_DI2B),具有一路 发送,即(A429_DOA、A429_DOB)。发送时,HS-3282为前级输出,HS-3182为正式差分输出。

其控制逻辑实现如下 :

3 软件设计

3.1 系统初始化模块

初始化模块是整个程序的入口 , 主要完成DSP处理器芯片F240的内部寄存器、时钟频率、看门狗设置、程序及数据存储空间和ARINC429总线通讯所需要设置的字长、传输速率、数据字格式、中断使能等的初始化设置,使之能够正确实现相应的功能。

3.2 ARINC429 总线发送程序设计

DSP处理器在接收到上位机的数据发送指令后,首先对数据收发芯片HS3282芯片进行 复位操作 ;然后向HS3282写入控制字,通过使能写控制字信号/CWSTR来设置发送模式 ;写完控制字之后就可以调用数据发送函数,向HS-3282中写入数据了。具体过程是 :首先设置 /PL1有效 , 将数据WORD1(16位 )写入FIFO寄存器的低16位,再设置 /PL2有效,将数据WORD2(16位)写入FIFO寄存器的高16位,这样就将32位数据写入到FIFO寄存器中。当FIFO寄存器写满32位数据后,标志位TX/R被设置为低电平。写入数据后,且将ENTX设置为高电平,进行数据发送。发送完成后 , 标志位TX/R就会拉回至高电平,此时就可以将ENTX置为低电平。ARINC429总线发送程序的流程图如图2所示。

3.3 ARINC429 总线接收程序设计

利用HS-3282芯片,可以完成2路ARINC429总线数据接收,这里介绍1路数据接收,另1路数据接 收同第1路。首先对HS-3282芯片进行 复位操作 以及写入控制字,等待接收上位机发出的ARINC429数据。当HS-3282芯片接收到一个的数据字(32位)时,就会将此数据存入到数据移位寄存器中。然后源 目的地址识别码(第9、10位)会自动与使用者自定义码进行比较,如果是相同数据就会被锁存 ;否则不操作。数据被锁存之后标志位DR1就被置为低电平,表明接收器已经接收到数据。DSP然后开始读取此数据,首先将数据选择线SEL置为低电平,并且给使能信号 /EN1一个低电平,将32位数据字的低16位锁存到数据总线(16位)上,让DSP就读取低16位数据 ;然后把SEL置为高电平 , 并且再次给使能信号 /EN1一个低电平,这样就将高16位数据锁存到数据总线(16位)上,让DSP完成对高16位数据的读取。同时将标志位DR1复位,这样就完成了一次接收ARINC429数据(32位)的操作。ARINC429总线接收程序的流程图如图3所示。

3.3 ARINC429总线接收程序设计

利用HS-3282芯片,可以完成2路ARINC429总线数据接收,这里介绍1路数据接收,另1路数据接 收同第1路。首先对HS-3282芯片进行 复位操作 以及写入控制字,等待接收上位机发出的ARINC429数据。当HS-3282芯片接收到一个的数据字(32位)时,就会将此数据存入到数据移位寄存器中。然后源 目的地址识别码(第9、10位)会自动与使用者自定义码进行比较,如果是相同数据就会被锁存 ;否则不操作。数据被锁存之后标志位DR1就被置为低电平,表明接收器已经接收到数据。DSP然后开始读取此数据,首先将数据选择线SEL置为低电平,并且给使能信号 /EN1一个低电平,将32位数据字的低16位锁存到数据总线(16位)上,让DSP就读取低16位数据 ;然后把SEL置为高电平 , 并且再次给使能信号 /EN1一个低电平,这样就将高16位数据锁存到数据总线(16位)上,让DSP完成对高16位数据的读取。同时将标志位DR1复位,这样就完成了一次接收ARINC429数据(32位)的操作。ARINC429总线接收程序的流程图如图4所示。

4 结束语

随着国内军用飞机及民用飞机的巨大发展,ARINC429总线通讯 简单、有效、规范严格、可靠性高的优点将使其在机载通讯领域具有十分广泛的应用市场,航空电子系统之间的通讯协议也越来越多的使用ARINC429总线标准。本文方案以DSP处理器为主控制器、可编程逻辑器件GAL16V8实现逻辑控制功能单元、总线收发芯片HS-3282和总线驱动芯片HS-3182一同作为总线收发单元,并结合DSP软件程序和逻辑控制程序完成对ARINC429总线数据的收发任务。

智能通讯总线 篇3

ARINC429规范是美国航空无线电公司专门为航空电子系统通信制定的航空数字总线传输标准, 它以单工串行方式进行通信。ARINC429总线具有接口方便简单、性能稳定、数据传输可靠、抗干扰性强等优点。它将飞机的各系统或系统与部件通过双绞线互连起来, 是各系统间或系统与部件间数字传输的主要途径[1]。目前, 相当数量飞行器的数据通信都采用机载ARINC429通信总线[2]。实现ARINC429通信协议大多采用专业的集成芯片, 如:HOLT公司的HS3282或DEVICE公司的DEI1016, 在芯片的内部实现数据串/并和并/串的转换。

采用这种方案虽然明显降低了设计的难度, 缩短了开发周期;但在需要多发多收的场合时, 成本成倍的增加, 并且大大增加了电路板的体积, 灵活性很差。本文创新性地提出了一种在FPGA芯片内部实现ARINC429总线编解码的方案, 从而减小了PCB板的面积, 降低了成本, 提高了设计的可移植性和灵活性。

目前, 大多数的ARINC429总线计算机测试系统都采用PCI总线实现计算机与ARINC429总线接口的连接, 构成便携式测试系统[3]。而PCI接口的实现大多采用PCI9030, 操作复杂并且集成度低[4]。本文采用DM642实现PCI接口与计算机通信, 进一步减小了通讯模块的体积, 提高了通讯模块的集成度和可靠性。

PCI总线ARINC429通信模块是组建ARINC429总线产品仿真和测试系统的常用模块, 因此研制PCI总线的ARINC429通讯模块具有重要的应用价值。

1 总体方案设计

ARINC429总线采用双极性归零制的三态码调制方式, 即信息由“高”、“零”和“低”状态组成的三电平状态调制。ARINC429协议中规定:发送和接收时, 都以保证总线A和总线B之间的差分电压为±10 V为基准。若总线A和总线B之间的差分电压为+10 V, 则认为是数据“1”;若总线A和总线B之间的差分电压为-10 V, 则认为是数据“0”;若总线A和总线B之间的差分电压应为0 V, 则认为处于静默状态。一般取总线A和总线B的中间电压为地, 则总线A和总线B的电压为-5 V, 0 V或5 V, 且若一路总线电压为-5 V, 另一路总线电压[5]必为5 V。

ARINC429电缆上的信号及经电压转换后的信号如图1所示。

根据ARINC429信号的特点, 并结合支持100 Kb/s, 50 Kb/s和12.5 Kb/s三种传输波特率可选、32位或25位两种帧长可调的设计需求, 采用如下设计方案实现8发8收的PCI总线ARINC429通信模块。总体方案框图如图2所示。

采用HI-8585作为发送电平转换芯片, 实现FPGA输出的3.3 V的TTL电平到ARINC429差分电平的转换。采用HI-8444作为接收电平转换芯片, 实现ARINC429的差分电平到FPGA的3.3 V电平转换。利用FPGA实现数据的缓存以及ARINC429协议的编解码, 完成数据的串/并转换。

利用DM642自带的PCI接口实现ARINC429通信模块与上位机的通信, DM642的PCI接口支持PCI总线规范2.2版本, 数据传输速率最大可达[6]264 MB/s, 远远大于8路ARINC429总线同时进行收发的数据传输速率。在上位机中利用Driver Wizard开发VISA仪器驱动程序来实现计算机与ARINC429通讯模块的连接, 通过Lab Windows CVI开发上位机的仪器驱动函数以及软面板实现对ARINC429通讯模块通道选择、波特率选择、字长选择的控制。

2 硬件电路设计

2.1 电平转换电路设计

FPGA一般输出的信号为3.3 V TTL电平, 且驱动能力不能满足ARINC429协议, 而且FGPA不能接收-5~5 V的信号, 因此必须经过电平转换将FPGA发送的信号转换为ARINC429协议中所规定的-5~5 V, 将接收的ARINC429信号转换为FPGA所支持的TTL电平。

本方案中采用HI-8585作为发送电平转换芯片。HI-8585是ARINC429总线单路发送电平转换芯片, 8路发送通道共需要8片HI-8585芯片。HI-8585供电电压为12~15 V, 它采用齐纳击穿技术, 将0~5 V TTL电平转换为-5~5 V的ARINC429电平, 并具有设置发送信号上升时间和下降时间等功能, 它底部有金属散热片, 散热能力比较强[7]。

本方案中采用HI-8444作为接收电平转换芯片。HI-8444是4路ARINC429接收电平转换芯片, 采用2片HI-8444实现8路接收。HI-8444采用5 V供电, 可支持TTL电平和COMS电平, 提供自检的功能, 并具有闪电保护功能[8]。HI-8585和HI-8444使用方法都比较简单, 都只需两根信号线就可以实现ARINC429电平和FPGA的TTL电平间的转换, 能够大量地节省FPGA的I/O口[9]。

2.2 ARINC429编解码逻辑

本方案在FPGA内部实现通信数据的串/并转换。FPGA内逻辑的编写是开发的重点和难点。FPGA选用CycloneⅢ系列的EP3C55F484I7N, 它具有丰富的I/O口、LE单元和存储单元[10]。FPGA逻辑主要分为接收单元、发送单元、FPGA与DSP接口三个部分。发送单元包括发送器、状态/控制寄存器、FIFO缓存, 发送器主要实现ARINC429的编码, 状态/控制寄存器用于控制和改变当前状态, FIFO用来缓存接收到的数据。接收单元包括接收器、状态/控制寄存器、FIFO缓存, 接收器主要是实现ARINC429的解码。FPGA与DSP接口通过EMIF外部存储器接口来实现, DM642的地址线通过地址译码向对应的状态/控制寄存器、FIFO缓存单元读写数据。FPGA逻辑框图如图3所示。

2.2.1 ARINC429编码模块

ARINC429编码模块的串/并转换、波特率设置、字长设置等功能主要在发送单元中实现, 发送单元的结构如图4所示。由于发送32位字长数据的时序与发送25位字长数据的时序差别较大, 且编码方式也不一样, 因此将发送32位字长数据与发送25位字长数据的通道作为两个独立通道设计。状态控制器用于设置某一发送通道的字长和波特率。当FIFO非空时, 发送控制器读取FIFO中写入的发送数据, 并根据状态控制器设定的字长把数据传送到不同的通道中进行数据变换。发送控制器根据状态控制器设置的波特率选择不同的工作时钟, 以实现发送波特率的调节。格式变换器和状态机将并行数据转换为串行数据发送出去。为了保证通信的可靠性, 只有发送通道不忙时才允许改变字长和波特率。

2.2.2 ARINC429解码模块

ARINC429解码模块的功能主要在接收单元中实现。接收单元的工作原理与发送单元类似, 结构如图5所示。解码模块主要实现将接收到的串行数据转换为32位并行数据, 与DM642的32位数据总线进行连接。接收数据的字长以及数据传输的波特率可在状态控制器中进行设置。

3 模块软件设计

3.1 上位机软件结构设计

虚拟仪器软面板是为PCI总线ARINC429通讯模块设计的用户程序。用户能够在计算机上通过对本软面板的操作, 方便灵活地使用和控制本模块。

上位机软面板的功能框图如图6所示。

软面板要完成的主要功能如下:进行ARINC429模块的复位操作;设置发送通道的通道号、波特率和字长;设置接收通道的通道号、波特率和字长;向某通道发送单个或批量数据;接收某通道的数据并显示;能够清空接收数据等。

3.2 仪器驱动函数设计

根据功能要求, 设计了相应的回调函数和驱动函数。其中基本函数包括初始化函数、关闭仪器函数、复位函数等, 主要是实现计算机通过PCI接口来驱动ARINC429通讯模块。功能函数部分主要实现以下功能:429模块寄存器复位函数将429模块的寄存器复位, 复位后默认的通信状态是波特率为100 Kb/s, 字长为32位。发送控制字设置函数能够设置指定通道的发送控制字。接收控制字设置函数能够设置指定通道的接收控制字。发送数据函数能够向某通道发送单个或者批量, 发送批量数据时相邻数据以“, ”作为间隔。接收数据函数能够接收指定通道接收到的所有数据。清空接收数据的功能将在上位机的回调函数中实现。仪器驱动函数树如图7所示。

4 测试结果

测试时利用上位机软件来验证发送数据与接收数据是否一致。测试结果如图8所示。点击“429模块复位”可以复位8路发送、接收通道的寄存器。在发送设置区域和接收设置区域分别设置发送和接收通道号、波特率和字长, 注意发送通道和接收通道的波特率必须一致。

对通道1~8按照上述方法依次进行测试, 测试结果如表1所示。

由表1可以看到, 8个通道发送和接收的数据完全一致。每个通道按照三种波特率100 Kb/s, 50 Kb/s, 12.5 Kb/s和两种字长32位、25位共6种组合方式下分别测试, 一共进行了48项测试, 收发数据完全一致。由此证明了硬件电路能正常工作, FPGA内编写的编解码逻辑正确, 以及所编写的DSP程序、仪器驱动函数、回调函数能稳定可靠地工作。

5 结语

本文设计了一种以DSP+FPGA为核心, 利用电平转换芯片实现PCI总线ARINC429通讯模块的方案。主要根据ARINC429总线协议在FPGA内部实现了ARINC429的编解码逻辑, 并编写了DSP程序、仪器驱动程序和上位机软件, 全面完成了通讯模块的研制。经过测试表明, 该设计方案正确可行, 降低了多发多收时的成本, 减小了电路板的尺寸, 使429通讯模块实现了集成性与小型化, 在提供稳定可靠的数据传输特性的基础上提高了设计的通用性和灵活性。该ARINC429通讯模块在实际应用中, 运行稳定, 通信快速可靠, 具有很高的工程应用价值。

参考文献

[1]王超, 王小鹏, 房超, 等.基于HS-3282的DSP与ARINC429总线通信模块设计[J].计算机与数字工程, 2011, 39 (8) :181-182.

[2]张华强, 赵剡, 陈雨.基于FPGA的ARINC429通信系统的设计与实现[J].通信技术, 2010, 43 (12) :4-5.

[3]李伟林, 张晓斌, 伍佳妮, 等.基于以太网的ARINC429总线高速接口板的设计[J].计算机测量与控制, 2009, 17 (5) :921-922.

[4]施少敏, 马彦恒.基于接口芯片PCI9030的PCI总线接口卡的设计[J].微计算机信息, 2006, 11 (2) :29-31.

[5]廖治宇.通用ARINC429总线分析测试仪的软件设计[D].成都:电子科技大学, 2013.

[6]许永辉, 杨京礼, 林连雷.TMS320DM642 DSP原理与应用实践[M].北京:电子工业出版社, 2012.

[7]Holt Integrated Circuit Inc.HI-8585, HI-8586 ARINC 429line driver[R].USA:Holt Integrated Circuit Inc, 2001.

[8]Holt Integrated Circuit Inc.HI-8444, HI-8445, HI-8448Quad/Octal ARINC 429 line receivers[R].USA:Holt Integrated Circuit Inc, 2003.

[9]曾蓉.LXI集成通信模块的研制[D].哈尔滨:哈尔滨工业大学, 2013.

智能通讯总线 篇4

关键词:分布式仿真,通信软件总线,软件复用

1 引言

分布式仿真系统需要由多台计算机协同完成仿真任务,仿真节点间的通信是关键问题之一。通常的“点点”通信方式,如果系统内有n个仿真程序需要通信,在极端情况下,需要有n(n-1)条逻辑通信链路。这种通信方式的不足之处在于通信链路多,数据拥塞,浪费网络带宽,造成通信效率下降;仿真程序紧密藕合,每一个仿真程序都需要知道与之通信的其它仿真程序的存在;通信方式不规范, 当系统内增加需要通信的仿真程序时,会导致对已存在的仿真程序通信代码的修改;通信数据分散,造成通信数据监控困难,不便于系统开发时的调式和系统运营后的状态监控。本文采用软件总线方法解决这些通讯问题。

2 通信总体结构

如图1所示是采用通信软件总线的分布式仿真系统的通信逻辑结构。分布式仿真系统由若干仿真节点和一个总线节点构成,各仿真节点和总线节点通过以太网络相联。仿真节点运行仿真程序,仿真程序是完成具体仿真任务或硬件驱动任务的程序。总线节点运行一个通信管理程序(以下称通信软件总线),该程序协调各仿真程序之间的通信。各仿真程序不能直接而是必须经过通信软件总线进行通信。各仿真程序向通信软件总线发送数据而不必关心这些数据发向哪个仿真程序,只需接收通信软件总线的数据而不必关心这些数据来自哪个仿真程序,数据的路由完全由通信软件总线根据外部配置文件确定,如图2所示,从而实现了各仿真程序间的通信解耦。总线节点(计算机)可配置一块或多块以太网网卡, 具体网卡数量根据具体仿真系统的通信节点数、通信流量和实时性的要求具体决定。

3 通信软件总线组成

通信软件总线由五个模块和两个外部配置文件组成,如图2所示。五个模块为外部配置解析模块、数据接收模块、数据发送模块、数据整合模块、数据监控模块;两个外部配置文件为数据包配置文件、通信路由配置文件。数据包配置文件用于定义通信数据包的结构、数据包之间的赋值关系;通信路由配置文件用于定义通信接入端口,通信发送路由。

数据包配置文件、通信路由配置文件存储于总线节点(计算机)硬磁盘上,将其从通信软件总线程序中分离出来,而不是与通信软件总线程序二为一,是为了实现通信软件总线的通用性问题。这两个配置文件为文本文件,可用任何一种文本编辑工具对其进行修改,如果需要产生一个新分布式仿真系统的通信系统,只要在这两个配置文件中填入新的内容即可,而通信软件总线程序不需做任何改变,可大大提高通信系统开发效率。

4 外部配置文件

4.1 数据包配置文件

数据包配置文件用于定义通信数据包的结构、数据包之间的赋值关系,其定义格式:

数据包配置文件:数据包列表数据包赋值列表;

数据包:struct数据包名{数据成员列表};

数据成员:成员类型成员名;

成员类型:float|double|char|short|int|long|

unsigned char| unsigned short| unsigned int|unsigned long|数据包名;

成员名:标识符|成员名[正整数];

数据包赋值:数据包名::成员标识符 = 数据包名::成员标识符;

成员标识符:标识符|成员标识符[非负整数]。

4.2 通信路由配置文件

通信路由配置文件用于定义通信接入端口,通信发送路由,其定义格式:

通信路由配置文件: 通信接入端口配置通信发送路由配置;

通信接入端 口配置 :[LinkIn Ports]= {接入端口列表};

通信发送路由配置:[Send Links]={发送路由列表};

接入端口:<packet= 数据包名,ip=IP地址, port= 端口号 >;

发送路由:<packet= 数据包名,

ip(from)=IP地址 , port(from )= 端口号 ,ip(to)=IP地址, port(to )= 端口号 >。

5 通信软件总线算法

外部配置解析模块解析数据包配置文件,在内存中建立通信数据包的结构(以下简称数据包结构)、数据包之间的赋值关系(以下简称赋值关系)、数据包存储区;外部配置解析模块还解析通信路由配置文件,在内存中建立通信接入端口(以下简称接入端口)、通信发送路由(以下简称发送路由);

数据接收模块按接入端口接收网络数据,存于数据包存储区;

数据整合模块按赋值关系对数据包存储区进行赋值操作,达到数据包整合目标;

数据发送模块按发送路由发送数据包存储区中的数据包;

数据监控模块按数据包结构显示数据包存储区,用于系统开发时的调试和系统运营时的状态监控;

通信软件总线完成通信的主要分为几个步骤。

步骤1(系统初始化):通信软件总线的外部配置解析模块解析外部配置文件的数据包配置文件,在内存中建立数据包结构、赋值关系、数据包存储区;外部配置解析模块还解析外部配置文件的通信路由配置文件,在内存中建立接入端口、发送路由。

步骤2(发送数据包):仿真程序以UDP协议经以太网络分别向通信软件总线发送数据包。

步骤3(接收数据包):通信软件总线的数据接收模块根据接入端口接收新的数据包存于数据包存储区。

步骤4(形成新的数据包):通信软件总线的数据整合模块根据赋值关系对接收到的已存入数据包存储区的数据包进行整合,形成新的数据包。

步骤5(发送新的数据包):通信软件总线的数据发送模块以UDP协议经经以太网络, 按发送路由向第一仿真程序发送新的数据包。

步骤6(显示数据包存储区):通信软件总线的的数据监控模块根据数据包结构显示数据包存储区,用于系统开发时的调试和系统运营时的状态监控。

步骤7(循环控制):继续通信,转步骤2;否则,转步骤8;

步骤8:通信结束。

6 结束语

智能通讯总线 篇5

关键词:RS-485通讯协议,RFID,CRC,数据采集,散货堆场

0 引言

信息采集与通讯对港口的信息化发展至关重要, 也是在信息时代竞争中脱颖而出的重要保障。河北某港口散货区信息采集设备存在以下三点缺陷:1) 目前港口的设备定位主要采用GPS技术, 设备成本高、功耗大。2) 部分信息还需通过人工录入的方法, 可靠性低、时效差。3) 大型设备或者散货堆场具有不可监测点[1]。针对这些缺陷, 应用目前较先进的RFID (Radio Frequency Identification) 技术, 即射频识别技术, 应用RFID的最新网络构架, 并引入防碰撞算法, 将最新技术进展和港口建设实际需求相结合。以该港口为研究对象, 用布置于港口散货区的RFID标签采集数据, 通过天线发送到读写器, 为了满足现场长距离、高效的数据传输要求, 将抗干扰能力强、通信距离远、误码率较低的RS485引入读写器和PC机之间的数据传输, 在上位机上查询到我们需要的当前数据和历史数据, 对散货区的管理具有指导意义。

1 港口RFID系统

鉴于港口常年潮湿、需要监测的设备分布较分散, 港口RFID系统设计为四部分, 如图1所示。

1.1 射频标签

射频标签集成有射频模块、天线、控制模块和存储器。如果标签和读写器之间通信距离比较远或者传输过程有障碍物的场合, 射频标签还需要内置电池, 采用主动地发送数据给读写器的调制方式;通信距离比较近的场合, 选择无源标签, 能量由读写器发射的电磁波供应, 适合环境较差的场所, 同时成本较低, 维护方便。

1.2 读写器

读写器是和射频标签联系紧密的设备, 读写标签的数据, 采集到的数据通过通讯设备和上位机进行通讯, 由射频模块、读写模块、天线、时钟、电源模块组成。射频模块为射频标签提供能量, 在向射频标签发射信号时进行调制;读写模块控制读写器与标签的数据传输, 包括信号的加密和解密、编码和解码、反碰撞等;读写器上安装有天线, 增大发射功率, 天线的数量和形状按实际情况选择。

1.3 通讯模块

通讯模块是处理上位机和读写器之间数据通讯的重要模块, 考虑到该港口的通讯距离较长, 干扰信号较多, 这里将原始的RS232通讯方式改为RS485, 误码率明显降低了, 提高了工作效率。

1.4 上位机

上位机实时接收到各个标签的采集信息, 并进行存储, 通过上位机的操作界面我们可以很直观的看到每一个机械设备的工作情况、坐标信息等, 也可以查看历史曲线信息, 可以合理的调度散货区的机械设备。

2 通信接口硬件电路

2.1 通信方式的选择

为了确保通信方式及通信协议编写的高效可靠, 首先对电子标签港口散货系统中数据的特点进行分析:

1) 数据采集范围大、需要多次采集读取;

2) 待识别目标数量具有不确定性, 随时在变化;

3) 数据采集的准确率要求高, 效率要高;

4) 自动读取时尽量减少系统功耗。

在港口散货系统中, 实现的是PC机与下位机采集系统之间的通信, 即点对点通信。按照数字传输的方式通常可以分为串行传输和并行传输两种, 并行通信传输速率高, 但是在远距离传输的情况下, 容易产生干扰, 此外同步数据通讯时需要很高的硬件配置, 而串行传输恰恰能克服这些缺点, 串行通信原理和并行完全不同, 传递的数据需要一位接一位的传输, 这样传输速率相对于并口就会减慢, 但是在这种情况下传输的距离会比较远, 所以在本设计中选用串行异步通讯作为传输方式。采用PC机作为上位机, 一般的PC机上都配备COM口, 串口作为计算机上一种标准的接口已经得到广泛的应用。

通讯系统硬件接口电路有很多, 其中包括RS-485、RS-232以及USB接口等方式。而选用RS-485标准的硬件接口电路是经过大量的筛选比较, 首先它仅采用A和B两根差分信号线就能完成整个通信过程[2,3], 从其硬件接口电路来说, 电路非常简单, 除此之外, RS-485接口与传统的RS-232接口相比具有抗干扰能力强、误码率较低、通信距离远等突出优点, 另外将RS-485串口通信应用于板带港口信息采集系统中还可以大大节省开发成本, 对于一些小型港口信息采集的设备改进方面有着很重要的意义。

2.2 通信接口硬件电路设计

本港口散货系统选用的是RS-485串行通信进行PC机与单片机之间数据交换, 在硬件接口电路设计过程中, 采用Maxim公司的MAX3485作为收发器来实现半双工通信, 它采用的是3.3V单电源供电, 低功耗, 其可以与系统中作为下位机的一些以3.3V电源供电的单片机 (如PIC单片机) 直接相连, 使得接口电路不用再进行电平转换。

MAX3485内部具有一个接收器和一个驱动器, 单片机可以通过控制引脚RE和DE的状态来控制通信处于接收还是发送状态。目前的微控制器大多本身配备有异步收发模块 (UART) , 可以直接与MAX3485相连, 完成通讯功能。

在设计通讯接口电路时, MAX3485的A和B之间要连接一个120Ω的匹配电阻来消除传输线阻抗不连续而引起的干扰, 同时在A线和B线上分别加了4.7K的上拉和下拉偏置电阻。这些电阻使得RS-485整个通讯系统的更加稳定, 保证了数据准确无误传输, 经过大量实验验证, 该硬件接口电路切实可行。

3 通信协议的设计

3.1 通信协议的基本组成

在港口散货通讯系统中, 不但能够实现散货现场信息的大量快速传输, 而且可以根据监控情况实现对的单独提取。由于港口工作环境非常复杂, 发送接收的数据种类又很多, 通信协议的编写至关重要, 本设计中采用通讯方式为异步半双工通讯, 所有协议的编写必须基于这个前提, 为了保证通讯过程中数据能够准确交换, 必须制定出一些规则, 来由发送方和接收方共同遵守, 其中主要包括数据传送顺序, 校验方式, 出现错误时的应对方式等操作[4~6]。数据传送的速率可以根据现场的实际需要来选择, 在此我们选择比较快的9600bps, 这完全能满足现场的需求。通信协议过于简单的话, 可能使数据在传输时难以区分, 但是如果通信协议过于复杂, 可能会影响数据的实时传输, 这都不能达到监控现场情况的目的。现实中也不存在一个适合本港口信息采集系统的协议, 因此只能根据现场需要自己设计一个方便快捷的通信协议。

485通信采用的是异步半双工的方式进行通信, 总线在任意时刻只能呈现一种状态, 所以首先要保证总线能够分时公用。根据现场的实际需求, 大部分情况下下位机信息采集系统都处于发送状态, 只在上位机有需要时才切换成接收状态。本协议规定在通信过程中数据实行打包发送或接收, 其中的数据单元按照港口应用需求进行专门设计, 每包数据都有数据头、数据说明、数据字段、校验码、数据尾等编码组成。

1) 数据结构和数据内容如表1所示。

2) 每包数据都有固定的数据结构, 数据头和数据尾在协议中作为准确提取数据的标志位, 通信过程中可以根据起始结束符的不同来区分此包数据的类型、状态、以及对连续发送的两包数据进行分离。

数据说明部分可以根据需求具体设定长度, 它指明了具体的命令内容。为了保证数据提取准确, 这里我们规定它的长度为2个Byte, 第一个字节Byte1是关于指令具体内容的编码, 其中包含指令传动方向、信息类型等内容, 数据说明部分D的有关内容如表2所示。

校验码CS:为了确保通讯的安全性, 校验方式采用循环冗余 (CRC) 校验[7,8], 这种校验算法与奇校验、偶校验以及和校验想比较的话最大的优点就是检错能力极强, 经过对其检测错误代码能力的分析可以看出, 它不能发现错误的几率为0.0047%以下, 所以CRC校验在通讯系统 (尤其在准确率要求高) 的检错中应用十分广泛。

3.2 CRC算法的原理和实现方法

为了保证通信的安全性, 防止由于通信数据传输错误对港口造成不必要的损失, 除了在硬件电路设计方面采取一定的措施外, 还需要通过加入必要的校验算法来保证通讯数据的准确性。

在一般的通讯系统中, 大多采用的奇偶校验、和校验或者CRC校验, 奇偶校验或和校验方法都比较简单, 具有编码简单、速度快等特点, 但是它们只能进行数据的奇偶性检测或1的个数总和的检测, 如果发生两位同时变化的情况则不具备检测能力。

循环冗余校验CRC算法在工业通信系统的纠错中应用十分广泛, 它能以很大的可靠性来识别传输错误, 下面就简单介绍一下它的原理。CRC校验法的计算是一个循环过程, 也就是将一个r位的二进制检验码序列R附加在一个p位的二进制序列D后, 从而构成一个新的二进制序列M, M的长为n=p+r。这里附加的数据序列R就是校验码, 它是通过运算得到的与数据序列本身以及CRC算法具有某种特定的关系, 在传输的过程中, 如果由于干扰使数据发生错误, 这种特定的关系也就被破坏, 因此通过检查这种特定的关系就可以检验数据是否正确传输。

CRC校验的标准有多种, 一般都是根据生成的多项式的位数进行分类的, 主要分为CRC-8, CRC-16等, 它们一般使用的典型多项式为:

3.3 通信协议的确定

在港口通信系统的实际工作中, 要完成的任务首先是设定货物的具体卸载地点, 然后由传输设备准确无误的将货物运送到指定的位置。采用以往的方式虽然可以将货物运送到位, 但是对于一些对卸货位置要求很严格的码头就无法达到要求。通信协议编写时大致包含以下两个过程:

1) 首先上位机必须提供准确的卸货位置, 可以以坐标的形式传输给下位机;

2) 下位机根据上位机提供的具体卸货位置将货物运送到指定的位置, 误差在允许范围内。

综上所述, 通信主要就是上位机与下位机进行数据交换, 在传输数据之前必须确定一个发送端和接收端都能识别的协定, 以保证数据准确无误的被传输和接收。由于RS-485通信协议为半双工, 所以必须处理好总线的状态是发送还是接受, 表3为上位机到下位机通讯时数据包的格式, 具体传输的任务、传输顺序以及所占的字节数。

由表3可以看出, 在发送数据前后都要加上开始标志和结束标志, 在第一节中通信协议的基本组成中已经详细介绍了开始和结束标志的作用, 这里需要说明的是开始和结束标志的长度没有硬性要求, 可以根据发送数据量的大小以及出现相同数据的概率来改变。通过目标ID可以确定要运送的货物, 防止误送或漏送。紧接着便是最重要的目标位置坐标信息, 根据目标位置x和目标位置y就可以确定具体地点, 下位机根据上位机给出的坐标信息将货物运送到指定的位置。

在上位机发出具体命令之后就将MAX3485置成接收状态, 上位机可以实时监控港口现场货物的运送情况, 具体的坐标位置、运送的货物量等信息。

下位机到上位机的传输协议的数据顺序如表4所示。

上位机的监控界面可以实现对运送货物位置的实时监控, 以确保货物能够送到指定的位置。

4 结论

港口信息采集系统运用RFID实时定位技术, 通过单片机对现场的位置信息采集来并进行数据处理, 再由此通讯系统与上位机进行数据交换, 实现货物的精准运送, 该系统对于提升港口信息采集能力, 提高港口运送质量具有重要的作用。经现场验证, 该系统的数据传输可靠性高, 数据采集实时、高效、准确。

参考文献

[1]王超, 封学军, 王伟.基于RFID的港口信息采集系统设计[J].水运工程, 2013, 2 (476) :137-141.

[2]孙建华, 赵晓典, 高永飞.PC机与单片机的串口通信系统设计[J].教育技术导刊, 2010, (9) :47-49.

[3]Yi Cai Laquai, B.Luehman, K.Jitter testing for gigabit serial communication transceivers[J].Design&Test of Computers, IEEE, 2002, 19 (1) :66-74.

[4]丁玲, 齐向东.基于PLC的控制系统中上下位机通讯的实现[J].数字技术与应用, 2010 (10) :24-25.

[5]陈在平, 杜金利.面向RS485协议配置应用的单片机与PC机之间的通信[J].天津理工大学学报, 2009, 25 (2) :78-80.

[6]沈红星.一种基于RS485总线的网络协议及其实现方法[J].单片机与嵌入式系统应用, 2003, (6) :68-70.

[7]Kong, Jun Jin Parhi, Keshab K.Interleaved cyclic redundancy check (CRC) code Conference Record of the Asilomar Conference on Signals[J].Systems and Computers, v2, 2003:2137-2141.

智能通讯总线 篇6

一、ATmega 16L单片机

通讯系统采用高性能、低功耗的8位ATmegal 16L单片机为核心处理器。ATmegal 16L单片机属于在AVR大家庭中一款新型高档单片机, 它的芯片内部集成了较大容量的数据存储器和丰富的硬件接口电路, 具备AVR高档单片机系列产品的全部优良性能和特点, 但由于采用了小引脚封装 (为DPI40) , 所以其价格仅与低档单片机相当, 成为在所有AVR单片机中内部接口丰富、功能齐全、性能价格比最好的产品。ATmegal 16L单片机具有以下特点:

1.ATmegal 16L单片机采用了先进的RICS精简指令集结构, 所以具有足够快的运行速度, 工作于16MHz时速度可达16MIPS, 处理速度是普通CISC单片机的10倍;

2.ATmegal 16L单片机具有4个PWM通道, 可实现频率、相位都可以调节的PWM脉宽调制信号输出;具有18个不同的独立中断源, 并有特定的中断允许位, 提高了系统的安全性;

3.ATmegal 16L单片机片内集成了大容量的非易失性程序、数据存储器和工作存储器, 存储空间足以满足系统需要;

4.ATmegal 16L单片机具有32个可编程I/O口, 可以根据需求定义I/O口的输入/输出方向;输出信号具有较强的驱动能力, 能够直接驱动LED等大电流负载, 且大部分的I/0端口为复用口, 不仅可以作为通用数字I/O使用外, 还具有第二功能, 可以作为芯片内部其他外围电路的接口;

5.ATmegal 16L单片机具有三个定时/计数器, 不仅具有常规的定时与计数功能, 还具有信号捕捉、比较、实时时钟计数和脉宽调制输出等更为强大的功能;

6.ATmegal 16L单片机具有8路10位ADC转换器, 可直接实现模拟信号和数字信号之间的相互的转换。还具有满足低功耗系统要求的空闲、掉电和省电三种工作模式, 适合不同的工作场合需求。

二、通讯系统硬件电路设计

ATmegal 16L单片机内部没有集成CAN通讯模块, 故通讯系统选用SJA1000作为CAN通讯系统控制器。SJA1000是一种独立CAN通讯控制器, 广泛应用于移动目标和一般工业环境中的区域网络控制, 它属于PHILIPS半导体PCA82C200 CAN控制器 (Basic CAN) 的替代产品, 在原有CAN控制器基础上增加了一种新的Peli CAN工作模式, 这种模式支持具有很多新特性的CAN 2.0B协议。为增大通讯系统的信号传输距离、提高系统的瞬间抗干扰能力和降低系统的射频干扰等, 选用专用的CAN隔离控制芯片CTM8251T作为CAN控制器与物理总线的接口芯片。SJA1000通过串行数据输出线TX和串行数据输入RX线连接到CAN隔离收发器CTM8251T。CTM8251T通过具有差动发送和接收功能的两个总线端CANH和CANL连接到物理总线。总线两端并联一个匹配电阻, 提高数据传输时的抗干扰能力和可靠性。单片机中的数据通过CAN通讯系统和CAN通讯物理总线CANbus传递给上位机, 单片机与CAN总线接口的电路图如图1所示。

三、软件程序设计

硬件电路是通讯系统的基础, 软件程序是通讯系统的灵魂。CAN通讯系统运行时软件程序首先进行硬件电路进行初始化, 其次复位及初始化CAN总线控制器SJA1000, 最后接收CAN信息帧, 按照相应协议进行解析, 从数据帧取出发送者地址和所发送的各参数信息传递给上位机, 程序继续等待下一个CAN信息帧, CAN通讯程序流程图如图2所示。

四、结束语

本文将CAN总线技术运用到单片机通讯系统设计中, 并结合CAN控制器CAJ1000开发出基于CAN总线技术的单片机数据通讯系统, 设计通讯系统硬件电路和软件程序。通讯系统具有性能稳定、抗干扰能力强及实时性好等特点, 在工业控制、煤矿机电设备和航空航天等领域具有广阔的应用空间。

参考文献

[1]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社, 2003

[2]徐科军, 张瀚, 陈智渊.TMS320x281xDSP原理与应用[M].北京:北京航空航天大学出版社, 2006

智能通讯总线 篇7

关键词:双口RAM,CPCI,通讯机制,乒乓操作

0 引言

CPCI总线是一种先进的局部总线,它的传输速率高(132MB/s,32bit/33MHz时),访问时间快,具有可热插拔、高开放性和高可靠性等特性,在工业生产中得到了广泛的应用。在现代控制系统中,PC机要向运动控制板卡实时发送大量控制指令,同时接收各轴的当前位置反馈以及其他I/O,传感器等的监测信号。因此,解决上下位机之间的通讯瓶颈问题是重要的研究课题。

常见的解决方法是在上下位机之间增加一个双口RAM,以实现数据缓冲与交互。双口RAM具有两套数据/地址总线,因此可以实现两端处理器对其进行访问。然而,双口RAM的主要缺点在于:当一端对其某一个地址进行写操作时,另外一端对该地址将被禁止进行任何操作以避免数据损坏。对双口RAM的访问控制,常见的解决办法有BUSY仲裁,中断仲裁,令牌仲裁等,如王雪使用了逻辑较为简单的令牌仲裁,通过双口RAM两侧的#SEM引脚,独立于双口RAM之外进行访问控制;石雷使用了BUSY和双口RAM中断结合的方法。然而,这些方法的不足在于进行大量数据传输时,由于仲裁机制的原因,仍然会使数据传输速度滞后。

1 控制系统及现有通讯方式

基于的控制系统主要结构为:主控芯片为TI公司的DSP TMS320F2812,CPCI总线接口芯片为PLX公司的PCI9052,上下位机交互的缓冲RAM为IDT公司的IDT7133,在DSP和双口RAM之间有一个电平转换模块。控制系统结构如错误。如图 1所示。

本控制系统中的双口RAM是IDT7133,这是一款高速的2K×16双口静态RAM。它提供两个独立的端口,允许左右端口同时对不同的地址读写数据。每个端口各有一套地址线、数据线和控制线。这种双口RAM只有硬件仲裁,也就是忙逻辑控制。IDT7133主要由存储器、I/O控制器和仲裁器组成,如图 2所示。

利用双口RAM进行通信的关键是如何处理冲突,避免读写错误。对于IDT7133,有两个控制引脚,BUSYL和BUSYR,分别控制各自一侧的访问。BUSY引脚为高电平时,表示该侧可以访问;当一个BUSY引脚为低电平时,对这侧的读写访问会被双口RAM拒绝。当两侧同时访问时,得到访问许可的一方可以正常存取数据,而未获得许可的一方的控制线显示为“BUSY”。具体情况如下:

当两个端口对双口RAM存取时,存在4种情况:

1) 两个端口不同时对同一地址单元存取数据;

2) 两个端口同时对同一地址单元读出数据;

3) 两个端口同时对同一地址单元写入数据;

4) 两个端口同时对同一地址单元,一个写入数据,另一个读出数据。

对于前两种情况,不会产出冲突;后两种情况,由于存在对同一地址的写操作,就可能造成一个端口的读写数据错误。为了保证数据的可靠交互,必须使用仲裁。通常可用的仲裁方式有中断、硬件、令牌和软件,但IDT7133只支持硬件仲裁。基于硬件仲裁方式,在上位机、下位机中设计了软件流程如下:

a) 将双口RAM的前5个地址划分出来,每个地址作为特定用途的存储单元。地址空间0x0作为上位机的指令空间,由DSP读取;地址空间0x1~0x2为双方交互的数据空间;地址空间0x3存放DSP状态标识,地址空间0x4存放上位机状态标识

b) 定义上下位机交互的状态标识字。对于下位机DSP,定义其准备就绪的标识字为0x0921,而忙碌状态的标识字为0x0;对于上位机,定义其准备就绪的标识字为0x9050,而忙碌状态的标识字为0x0。这样,就可以用读到的标识字来确定上(下)位机的状态,以供访问程序使用。如图3所示。

c) 设计下位机DSP程序为一个循环,反复读取上位机标识位,一旦上位机状态就绪,就开始读取双口RAM交互空间的命令、数据空间,并进行相应操作,之后将运算结果存入到交互空间的数据空间,并将自己的状态置为就绪。

同样,上位机程序也是一个循环,对下位机的访问也是通过读取下位机标识位来进行的。一旦下位机就绪,就可以向下位机发送命令、数据,并读取运算结果。分析得知,这种交互方式逻辑严密、流程完整。经过实验验证,可以成功实现上下位机的指令、数据交互。

2 乒乓操作机制

以上提出的交互机制是基于查询的,由上下位机轮循访问双口RAM中的指定空间;通过查询标识字,实现数据交互控制。这种机制已在项目实践中通过验证。上位机可以通过此机制,向控制卡发出指令,控制电动机进行相应的运动。

在本机制中,下位机的控制程序是一个无限循环,每次循环都读取上位机标识字,只有当上位机标识字表征为“Ready”时,下位机才去读取相应的的指令和数据,进而进行执行和处理,最终再将处理结果返回给上位机。对于上位机来说,也需要经过相同的流程。

这种交互机制,由于仲裁的需要,常态时上下位机的CPU均处于无限的循环查询中。这样使用了较多的CPU资源,但交互效率较低;同时,仅使用了双口RAM的5个地址,而忽略了99%的空间。这样的交互速度有限,同时对CPU,双口RAM的利用都不尽如人意。实验表明,DSP向上位机发送1000个数据,每隔5个伺服周期(0.5ms)发送一次,加上查询时间和上位机读取时间,共需要约1s。

在项目实践中,常见的一个用户需求是要能显示出电动机的实时位置和速度。这就要求控制卡能够返回较大数据量的电动机位置、速度信息。按照之前的交互方式,这些信息也是通过双口RAM的前5个地址进行交互的;由于这5个空间还需要进行指令和其他数据的交互,因而对电动机位置、速度信息提供的比较滞后,不能满足实时性的需要。因此,可以开辟专门的双口RAM空间,用于进行此部分操作。为了保证实时性,采用乒乓操作的方式,循环地进行数据传送。

乒乓操作是一个数据流控制的处理方式,典型的乒乓操作方法如图 4所示。“输入数据选择单元”和“输出数据选择单元”按节拍、相互配合的切换,将经过缓冲的数据流没有停顿地送到末端的运算处理模块进行处理。把乒乓操作模块当做一个整体,站在这个模块的两端看数据,输入数据流和输出数据流都是连续不断的,没有任何停顿,因此非常适合对数据流进行流水线式处理。

以采集电动机实际位置为目标,将现有的双口RAM IDT7133分为两部分,RAM1为前1k×16存储区,RAM2为后1k×16存储区。当采样数据写满RAM1时,DSP向PCI9052发出一个中断信号,通知上位机来读取。同时,后续的数据写入RAM2,同时上位机通过PCI总线读取RAM1中的数据。而当RAM2中的数据写满时,DSP会再给PCI9052发出中断信号,通知其来读取RAM2中数据,并立即切换到RAM1来写入电动机新的位置信息。如此循环进行,实现数据写入和读取的同时进行。由于PCI9052局部总线工作频率最高可达40MHz,因此读取双口RAM中数据的速度远远大于采样时写入数据的速度,允许采集与外部访问的同时进行,实现两块存储区操作的乒乓式切换,满足数据的实时交换的要求。图5以其中一组存储器为例给出乒乓切换流程图。

基于乒乓操作的上下位机交互,工作流程如图6所示:

设计对比试验,发送一定数目的数据,来观察原交互方式与采取了乒乓操作的交互方式的通讯速率。这种交互方式,由于将数据读写操作分在两个不同的RAM区域中进行,同一时间不会出现对相同地址空间的操作,不会有BUSY状态,交互时不需要进行仲裁,因而没有多余的等待时间。上下位机的CPU无须去循环查询对方的状态,只用在中断发生时执行相应的中断响应程序,读取其中一个RAM即可。分析表明,乒乓操作方式不需要判断BUSY信号来进行仲裁,而是成批量读取数据,通讯效率得到大幅度提高。在大批量传输数据时,这种方法较有优势。

4 总结

针对实际中的用户需求,对现有的上下位机交互方式进行了创新。本设计中,PCI9052和双口RAM的功能都比较有限,无法搭建DMA通讯。在这种情况下,采用乒乓操作,实现了交互速率的突破。新的交互机制充分利用了双口RAM闲置空间,实现流水线式操作,向实时性迈进了一大步;并突破了双口RAM功能过少的限制,利用PCI接口芯片和DSP的中断功能实现上下位的CPU准实时通讯。

参考文献

[1]何文波,孙德宝,吴新建.基于FPGA和PCI总线的数据采集板设计[J].微机发展,2004,14(11):27-29.

[2]张武,张春华,唐劲松,等.基于PC_104_Plus总线数据采集系统设计与实现[J].微计算机应用,2006,27(1):55-58.

[3]曹军.基于PCI总线的高速数据采集卡的研制[J].2002.

[4]侯小强,薛重德,张月芹.基于双口RAM IDT7025的双机通讯设计[J].机械制造与自动化,2008,37(2):100-102.

[5]王雪.基于双口RAM的双CPU并行通信的研究与实现[J].

[6]石雷.利用双口RAM实现DSP与PC机的高速通信[J].DSP开发与应用,2008,24(2):141-142.

【智能通讯总线】推荐阅读:

应急通讯05-20

监控通讯06-07

通讯论文07-03

可靠通讯07-23

通讯程序08-03

通讯架构08-14

通讯线路08-16

电话通讯08-23

机器通讯09-06

事件通讯05-13

上一篇:冲洗系统下一篇:物候观察