异步串行通信下位机的FPGA设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

,∞如

图5 Rx—Module模块对毛刺电平的过滤
PicoBlaze是Xilinx公司免费提供的一个8bit的嵌入
式微控制器模块,具有49条指令、256个端口地址、 16个8bits通用寄存器和一个可屏蔽中断。利用 它,可以很轻松地实现对通信帧的协议解释。有关 PicoBlaze的详细说明文档,可从Xilinx公司的网站
稳定可靠,出色地完成了FPGA和PC之间的异步串 行通信。本文同时对用户系统中的上位机是其它微 处理器这一情况做了说明,使得本文设计的模块能 够方便地扩展到其它的异步串行通信场合。 参考文献: [1]王诚,薛小刚,钟信潮.FPGA/CPLD设计工具一Xilinx
ISE5.x使用详解[M].北京:人民邮电出版社,2003. [2] J Bhasker著,孙海平等译.Verilog HDL综合实用教程
图1 异步串行通信的硬件连接图
软件平台为:开发工具是Xilinx公司的ISE 6.1.03i,仿真工具是Model Technology公司的Mod—
elSim SE 5.8b。
作者简介:盂繁智(1981一),男,辽宁省盖州市人,硕士研究生在读,主研方向:星基导航与定位。 收稿13期:2004—06—01
FPGA
BAUD lUTE Timing
电蓦
图2异步串行通信F位机FPGA的内部模块
FPGA和PC之间的通信格式采用“9600,N,8, 1”,即波特率为9600bps,无奇偶校验位,8位数据 位,1位停止位。如果用户系统中的上位机是其它 的微处理器,可以根据系统要求的通信速率,使用更 高的波特率值。 3.1波特 率时钟产生模块
BAUD RATE Timing模块对系统时钟CLK进行 分频,产生Rx—Module模块和Tx—Module模块需要 的时钟信号。
为了充分利用FPGA内部的全局时钟资源,最 大程度地保证各个模块工作时钟的同步性,我们设 计的模块统一使用一个系统时钟,需要不同频率的 时钟时,使用相同频率的使能信号控制系统时钟加 以实现。这要求使能信号的脉冲宽度必须等于一个
本文给出了一种基于硬件描述语言VerilogHDL 和8bit嵌人式微控制器软核PicoBlaze的实现方案。 该方案不使用单片机,而是直接在FPGA中设计与 PC的异步串行通信模块。如果用户系统的上位机 不是PC,而是其它的微处理器,而且要求二者之间 高速通信(比如,波特率大于128000bps),只需要简 单地修改一下本文的硬件接口和串口通信格式即可 实现FPGA和上位机的高速串行通信,这是传统的
由于PC发送数据的时钟和FPGA使用的时钟 是异步的,为了保证Rx—Module模块正确接收来自 Pc的数据,本文在Rx—Module模块中使用频率等于 波特率16倍的串口时钟。当模块检测到R)【上出现 下降沿时,开始对串口时钟计数,当计到8个时,对 Rx取样,然后每隔16个串I:3时钟周期,对Rx取样 一次。因为串口时钟的频率是波特率的16倍,所以 每次取样都处在数据的中间时刻,保证了取样的正 确可靠。取样的时序图,如图3所示。
·96·
微处理机
2005薤
பைடு நூலகம்
协议解释,如果发现某个通信帧不符合通信协议,立 即要求上位机重传被破坏掉的通信帧,及时有效地 进行错误恢复。
下位机FPGA对协议进行解释,传统的做法是
使用有限状态机。该方法实现比较复杂,而且占用 资源大。在本文中,我们使用Xilinx公司提供的 8bits嵌入式微控制器软核PieoBlaze进行协议解释, 所占资源少,而且设计方便。
单片机设计方案所不能实现的。 2异步串行通信的软硬件平台
硬件平台为:PC作为异步串行通信的上位机, FPGA作为下位机,二者通过标准的RS232接口实
现互连。RS232电平和吼电平的转换通过Sipex
公司的SP385ECA实现,硬件接连如图1。如果用 户系统中的上位机是其它的微处理器,二者的工作 电平如果兼容,直接连接即可;如果不兼容,需要一 个逻辑电平转换芯片。
MENG Fan—.zhi
(Satellite Navigation and Positioning R&D Center,School of Electronic Science and Engineering,the National Univ.ofDefense Technology,Changsha 410073,China)
万方数据
5期
孟繁智:异步串行通信下位机的FPGA设计与实现
·95·
3异步串行通信下位机的FPGA设计与实现 异步串行通信的下位机至少要包括三部分,一
是波特率时钟产生模块(BAUD RATE Timing),二 是数据接收模块(Rx—Module),三是数据发送模块 (Tx—Module)。本文的设计除此之外,还增加了一 个通信帧协议解释模块(PicoBlaze)。这四部分构成 的总体结构,如图2。
Abstract:This paper presents how to use the FPGA.to design the under levels computer in asyn—
chronous serial communication,and focuses Otl the key design points of the receiving module in FPGA,
chronous serial communication module designed in this paper is running stably and reliably in the real
system,which proves the coiTectness of this paper.
刚在Rx上检测到的下降沿只是一个毛刺,接收模 块复位到初始状态,等待下一个下降沿的出现。由 以上分析,我们不难看出,只有毛刺持续时间小于半 个数据宽度(当波特率为9600bps时,该值约为0.2 ms)时,才能够滤掉;大于该值,接收模块并不能将
万方数据
3.3协议解释模块
为了提高数据在通信链路上传输的可靠性,上 位机向下位机发送数据,一般是按照某种协议进行 打包处理,这种打包后的数据流,一般称作通信帧 (Frames in communication)。下位机对通信帧进行


\// 汛RT
Do
、取样时瓤一一

16

_1
;’

删Ihnnnnnn ]l-lrlrll-ii-lrlrlrlNrlrll-ii-lllrl 1f10唧0f1
图3串口数据取样时序图
Rx—Module模块的仿真时序图,如图4。其中, Rx表示输入的串行数据,Data—out表示串并变换后 的输出数据(图中使用十六进制表示),输出时刻对 应停止位的中点时刻,Data—strobe表示同步脉冲信 号。
了设计方案的正确性。 关键词:异步串行通信;现场可编程门阵列;微控制器
中图分类号:TN402
文献标识码:A
文章编号:1002—2279(2005)05—0094—03
The FPGA Design and Development of the U nder Levels Computer in
Asynchronous SeriaI Communication
审剖
上下载。 本文拟定了一个FPGA和PC的帧通信协议,并
且依据此协议,给出了PicoBlaze的处理流程。
r——。’’’—1 l替:::紫l

3.3.1帧通信协议
在 本文的设计中,帧通信协议定义如下。
图6一种帧通信协议结构 各字段的意义: LNG:长度,1个字节,为TYPE+DATA所含的 字节数; TYPE:信息类型,1个字节; DATA:数据段,字节数目可变; CHECK:1个字节,为LNG+,IYPE+DATA的8 比特校验和。 3.3.2 PieoBlaze的处理流程 微控制器PicoBlaze的时钟直接使用系统时钟, 中断信号来自Rx—Module模块输出的同步脉冲信 号。PicoBlaze一旦检测到中断发生,便从输人端口 读人数据,然后根据帧通信协议进行协议解释。 PicoBlaze对协议解释完毕之后,从中提取出信 息数据,并将信息数据根据信息类型(TYPE)写入 相应的目的寄存器,同时将校验结果传到Tx—Mod— ule模块。处理流程如图7所示。 3.4数据发送模块 Tx_Module模块若检测到PicoBlaze输出的校验 结果为错误,则将相应的信息类型(TYPE)按照串 口通信格式发送给PC,命令PC重传该类型的通信 帧;若PicoBlaze输出的校验结果正确,Tx—Module模 块不予处理。
[M].北京:清华大学出版社,2004. [3]Ken Chapman.PicoBlaze 8一bit Microcontroiler for Vir-
系统时钟周期,脉冲的边沿和系统时钟边沿对齐。 在本文的设计中,系统时钟取为10MHz,分频
使能信号为153846Hz和9615Hz。实际使用的波特 率是9615bps,虽然和规定的波特率9600bps有 0.2%的误差,但该误差不会影响FPGA与PC之间 的正常通信。 3.2数据接收模块
Rx—Module模块将来自Pc的串行数据风经串 并变换后输出,同时输出同步脉冲信号。
No.5 Oct.,2005
微处理机
MICROPROCESSORS
第5期 2005年10月
异步串行通信下位机的FPGA设计与实现
孟繁智 (国防科技大学电子科学与工程学院卫星导航定位研发中心,长沙410073)
摘要:本文介绍了如何使用FPGA来设计异步串行通信中的下位机,重点分析了FPGA中接
收模块的设计要点,并且给出了仿真的时序图;同时给出了一种帧通信协议,介绍了微控制器软核 PicoBlaze进行协议解释的处理流程。本文设计的异步通信模块在实际系统中运行稳定可靠,证明
together with the simulated timing graphs;This paper also provides a type of frame communication proto—
col and the processing flow of the soft microeontroUer core PicoBlaze to translate the protoc01.The asyn—
万方数据
图7 PicoBlaze的处理流程
Tx—Module模使用的波特率为9615bps。发送 数据处理起来较为简单,仅将通信帧的类型(1个字 节)作并串处理,然后按照串口通信格式发送出去 即可,此处不作详细的说明。
4结束语
本文介绍了如何使用VerilogHDL和8bit嵌入 式微控制器软核PieoBlaze直接在FPGA内实现FP— GA和PC间异步串行通信的方法。文中分析了串 行通信的设计要点,并且对以通信帧方式传输的数 据流进行了协议解释方面的介绍和分析。本文设计 的异步串行通信模块,在实际的FPGA系统中运行
Key words:Asynchronous serial communication;FPGA;MicrocontroUer

,.

现代电子系统设计中,经常需要FPGA与PC进 行通信。传统的设计是在用户系统中增加一个小型 单片机,利用单片机和PC进行通信,然后在FPGA 中设计与单片机的接口电路。由于异步串行通信通 常情况下只是用户系统中的一部分,这种做法使得 用户除了在FPGA设计上需要精心考虑外,还要花 很多时间去设计单片机和PC的通信以及和FPGA 的接口,既浪费时间,又增加硬件设计的复杂度,同 时也降低了FPGA的功效。
图4 Rx—Module模块的仿真波形
图3所示的取样时序除了可以保证取样时刻处 在数据的中间时刻,同时还可以对出现在R)(上的 低电平毛刺予以滤除。当Rx上出现下降沿时,开 始对串口时钟计数,计到8个时对R】【取样,如果此 时Rx=0,说明通信确实开始;如果Rx=l,说明刚
其滤掉,而是认为通信开始,只是输出的并行数据是 错误的,后面的协议懈释模块将会对这种错误进行 处理。仿真结果进一步验证了我们的分析,参考图 5,模块将出现在Rx上的毛刺滤掉了,并未对通信 产生影响。
相关文档
最新文档