基于F P G A的异步串行通信的实现

2013-04-13 02:46陈启发
科技视界 2013年3期
关键词:数据位通信协议接收端

陈启发 罗 京

(中国南车股份有限公司 株洲电力机车有限公司,湖南 株洲 412001)

0 引言

异步串行通信要求的传输线少、可靠性高、传输距离远,被广泛应用于计算机和外设的数据交换。异步串行通信是以帧为单位,每帧按照通信协议进行传输,并且数据的发送端和接收端都使用各自的时钟控制数据的发送和接收过程[1];接收端先数据解调,然后将有效数据传输给终端设备。

对于接收端的数据解调,首先要从数据流中提取同步信号位信息,然后提取数据位信号。同步信号位信息提取性能的好坏直接影响到整个数据的解调质量,甚至影响整个通信系统的性能[2]。传统的帧设计很难做到位同步,随着FPGA的飞速发展及Verilog语言的出现,用FPGA来实现同步信号位的提取,不仅简化了电路、缩小了体积、提高了可靠性,而且设计时的灵活性更大、保密性更好。

1 通信协议及接收思路

FPGA的输入是485收发器传输过来的信号rxd,并不是标准的485通信协议,其帧结构如图1所示,其特点如下:

图1 输入信号rxd波形

(1)每一帧长度固定为25位;

(2)波特率为 1Mbit/s;

(3)每一帧由同步信号位和数据位组成,前13位为1111111111110的二进制同步序列,后12位为数据位;

(4)当矩形脉冲信号占空比为75%时,表示数据“1”;当矩形脉冲信号占空比为25%时,表示数据“0”。

FPGA接收信号的步骤如下:

(1)先检测输入信号每一位数据的上升沿,当检测到输入信号的上升沿,把输入采样信号tb_zhen置1,并开始计数,当计数计到输入信号每一位的中间位置时,把tb_zhen置0,保证每次采样都是在每一位数据的中点处,可以得到一组与输入同步的30%占空比的方波信号tb_zhen;

(2)在tb_zhen下降沿的时候,开始读取输入信号电平,此时得到的逻辑电平就认为是输入信号的电平信号,读取的信号电平较输入有0.5us的延时;

(3)帧同步的提取,可以考虑采用有限状态机实现帧同步,也可以采用队列模式实现,当13位寄存器中出现1111111111110时,就认为同步完成,数据位已经到来;

(4)当检测到同步完成后,开始接收和发送数据,当下一次同步完成时,进行下一轮数据的接收和发送。

2 软件设计

部分程序的源代码如下:

捕捉到帧同步完成后,就可以开始采集数据位,然后根据需要采用串行或并行发送给上位机。

程序经过综合后得出的原理图模型如图2所示。

图2 原理图模型

图3 实际检测的波形

(1)clock系统时钟输入,为30M的晶振;

(2)rxd为485芯片传输的信号,数据的输入端口;

(3)tb_zhen为输入信号采集的同步读取信号;

(4)sys_tb为帧同步完成信号;

(5)sys_pd为同步信号位数据串行输出端口;

(6)sys_zhen为完整的数据帧串行输出端口;

(7)sys_sj为解帧后的串行输出端口。

3 实测波形

为了进行对数据提取的检测,将程序下载到EP1C6系列的FPGA里进行数据采集,为了便于观察,主要测量5种波形:tb_zhen的波形、帧同步完成sys_tb波形、完整的帧sjs_zhen波形、同步信号位sys_pd波形、数据位sys_sj波形。如图3所示。(a)是rxd和tb_zhen的波形,(b)是 rxd 和 sys_tb 的波形,(c)是 rxd 和 sys_zhen 的波形,(d)是rxd和sys_pd的波形,(e)是rxd和sys_sj的波形。从下面的波形可以看出,解帧后的输出波形和输入波形是一样的,说明对输入电平的读取及帧同步过程是正确的,并成功地提取了同步信号位和数据位数据。

4 结束语

本文使用Verilog语言成功地实现了对输入电平的正确读取和帧同步的提取,体现了FPGA的强大功能。文中的通信协议并不是标准的485通信协议,但是实际效果比485通信协议方便可靠,具有一定的应用价值。

[1]阳宪惠.现场总线技术及其应用[M].清华大学出版社,1999.

[2]叶懋,景新辛,杨海燕.基于Verilog语言的帧同步的实现[J].系统仿真技术,2007.

[3]夏宇闻.Verilog数字系统设计教程[M].北京航空航天大学出版社,2008.

[4]Lee,Weng Fook.Verilog coding for logic synthesis[M].Hoboken,N.J.:Wiley-Interscience,2003.

猜你喜欢
数据位通信协议接收端
A320飞机大气数据的采集和计算在排故中的应用
基于扰动观察法的光通信接收端优化策略
顶管接收端脱壳及混凝土浇筑关键技术
一种设置在密闭结构中的无线电能传输系统
基于多接收线圈的无线电能传输系统优化研究
一种用于FPGA的片上可配置SRAM设计
基于Z-Stack通信协议栈的红外地温采集电路设计
一种适用于FPGA系统中的变速箱电路设计
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现