基于通信技术在三坐标测量系统中的应用

2015-03-18 12:55:27   来源:eechina   

关键字: 测量系统  三坐标  通通信技术

1、引言  

三坐标测量机做为一种高精度测量仪器,在机械工业、汽车工业、航空航天等领域具有广泛的应用。本套通讯系统采用FPGA为主要通讯芯片,使用FPGA实现各通讯模块对数据的收发,配合单片机对数据进行编码、解码、重封装,实现了计算机和控制系统的通讯;由于FPGA程序的并行执行结构和高的执行速度,因此大大保证了数据传输的准确性和快速性。  

2、通讯模块的实现  

2.1 计算机与桥接卡的通讯  

本系统采用RS232总线实现计算机和桥接卡之间的通讯。计算机发送的数据,经过RS232总线传输到桥接卡,通过MAX3232芯片实现电平转换。FPGA检测到起始位后接收数据,接收完数据后,将其存于UART接收FIFO中;待接收到结束位时,FPGA产生中断信号,触发单片机读取接收FIFO中的数据并对其解码,判断数据中的目的地址,根据目的地址决定是否处理或发送到控制板;桥接卡与计算机通讯时,首先将数据进行编码,然后将数据置于发送FIFO中,启动发送模块,发送模块自动将数据发出,数据经MAX3232发送到总线上等待计算机的接收。  

(1)串口发送模块的FPGA实现  

串口发送模块从发送FIFO读出数据后,根据串口通信协议,数据在向外发送时,低位在前,高位在后,所以将八位的数据重新进行编辑:前加停止位‘1’,后加起始位‘0’,变为十位数据包,将十位数据按照设置波特率逐位发送即可,使用Modelsim进行仿真,仿真图见图1(data位要发送的数据,tx为发送线)  

\
  
(2)串口接收模块的FPGA实现  

总线空闲时当检测到由高到低变化时,表明数据开始传输,接收模块准备接收数据,接收数据时低位在前,高位在后,当接收到起始位后,每隔一个数据传输周期接收一次数据,待接收到八位数据后将数据置于接收FIFO中,使用Modelsim进行对发送模块仿真见图2(rxBuf为接收到的数据,低位在前,高位在后):  

\
  
2.2 桥接卡与控制卡及控制卡之间的通讯  

由于桥接卡需要和多个控制卡进行信息的交换,且不同的控制卡之间也需要数据传输,因此在进行总线选择时,必须保证各个器件都具有主控的权利,可以占用总线,本系统中桥接卡和控制卡及控制卡之间采用I2C总线进行通讯。  

I2C总线是一种两线式串行双向总线,是多主控的总线,由时钟线和数据线构成,数据传输时,时钟信号由主控器件产生。当SCL为高电平时,SDA出现由高电平到低电平变化,表明开始传送数据;当SCL为高电平时,SDA出现低电平到高电平变化,表示数据传送结束;接收方收到数据后,需向发送方发出应答信号;为了防止总线上数据冲突,总线有仲裁机制,当总线同时被多个发送方占用时,首先出现高电平的发送方被仲裁掉,因此,最长低电平周期的器件占用总线,成为主控器件;被仲裁掉的器件,放弃总线,改为接收。  

使用FPGA实现I2C总线时,需要建立三个模块:总线监视模块,总线发送模块,总线接收模块。  

①总线监视模块的实现  

总线监视模块用来为发送和接收模块提供总线状态,总线分为空闲、忙、等待三种状态。当总线上没有数据传输时,保持高电平,称为空闲态;数据传输期间,总线为忙的状态,如果主控方占用总线后没有数据发送,则为等待状态,如果总线等待时间超过设定时间,总线由等待转为空闲态。发送、接收模块需要得到的信号为起始信号、结束信号和状态信号,由总线监视模块实现这些信号。使用Modelsim进行仿真,得到波形如图3:  

\
  
②I2C发送模块的FPGA实现  

发送模块主要实现对数据的发送;首先发送地址,发送完地址后,等待应答信号,如果没有响应,则放弃总线;如果出现响应,I2C发送模块输出RAM地址,读取RAM的数据,依次发送数据,每发送完一个字节,等待响应信号,发送模块根据RAM中的数据长度,将RAM数据读完。为了防止多个主机同时占用总线,应根据仲裁机制将总线上的非主控方仲裁掉,禁止其继续占用总线。为了防止总线传输中信号延迟,当向总线上发送下一数据时对总线上的状态进行判断,如果正确,再发送下一位数据。否则,放弃总线。使用Modelsim对I2C发送模块进行仿真如图4。  

\
  
I2C_outScl:发送时钟;I2C_inScl:检测时钟  

I2C_outSda:发送数据;I2C_inSda:检测数据  

desAddr:目的地址;msgData:发送数据  

RAM_Addr:RAM的地址信号。  

③I2C接收模块的FPGA实现  

接收模块接收到总线监视模块发送来的起始位信号后,准备接收总线上的数据,接收到的地址后,判断接收到的地址和电路板地址是否一致;当两者一致时,向总线置应答信号ACK,继续接收下面的数据,收到的数据置于接收FIFO中;如果地址不一致,则放弃总线。使用Modelsim对I2C接收模块进行仿真如图4。  
[1] [2]
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

推荐阅读

编辑:什么鱼
本文引用地址: http://www.eeworld.com.cn/Test_and_measurement/2015/0318/article_11057.html
[发表评论]
[加入收藏]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]
小广播
每日新闻
最热点击
本周热门资源推荐
EEWORLD独家
论坛精华
精选博文