版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Verilog的RS-232串口通信在CPLD上的实现 CPLD(Complex Programable Logic Device)是一种复杂的用户可编程逻辑器件。采用连续连接结构,延时可预测,从而使电路仿真更加准确。CPLD是标准的大规模集成电路产品,可用于各种数字逻辑系统的设计。开发工具Quartus II、ISE等功能强大,编程语言灵活多样,使设计开发缩短了周期。随着嵌入式的发展,对数据的传输和人机交互通信的要求越来越高。而串口通信因其资源消耗少、技术成熟而被广泛应用。系统中上位机与嵌入式芯片之间的交互通信可以通过专用集成芯片作为外设RS-232异步串行接口,如TI、EXA
2、R、EPIC公司的550、452等系列UAWT集成电路,或在拥有Nios系统的FPGA上可以方便地嵌入UART模块。但是在设计中用户会提出自己的要求,如:数据加密或只使用UART部分功能等,即要求更灵活的UART。而且有时CPLD资源剩余,出于成本考虑也会要求设计一种模拟的UART。对于上述的两种情况,就可以在CPLD其丰富的资源上制作一款UART,实现PC机与嵌入式系统之间的数据交换。1 串口通信协议11 UART简介通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)。异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备
3、开销较小。具有相关工业标准提供的标准的接口电平规范等优点,在工业控制领域被广泛采用。异步通信一帧字符信息由4部分组成:起始位、数据位、奇偶校验位和停止位。本设计基于RS-232的数据帧结构,设置数据帧结构如图1所示:1 bit起始位,8 bit数据位,1 bit停止位,无校验位。每帧实质上传送1 Byte数据。12 自定义数据包格式多个上文所描述的帧就可以组成一个数据包。串口通信是在RS-232数据帧结构的基础上定义的,传输以数据包为单位进行。包结构如图2所示。本文采用和校验的结构,一个数据包包含15 Byte。其中第1个字节是数据包头即握手字符。第2字节为控制字符,EE代表写命令,DD代表读
4、命令。第3至第14为可利用数据。第15字节作为校验字符,理论上应等于这个数据包中数据字符串之和的后8bit。2 设计方案21 UART的设计结构笔者设计采用模块化设计,方案的UART主要由逻辑控制模块、波特率发生模块、发送模块和接收模块等组成。波特率发生模块可以建立精确的时钟,确保数据采样准确、工作时序顺畅。逻辑控制模块、波特率发生模块、发送模块和接收模块完成工作有:确定数据起始位、数据收发,串并转换、建立握手连接、判断命令、数据校验等功能。22 状态图利用串口通信在数据交互过程中涉及到了多种工作状态,情况比较多样,而利用程序设计中的有限状态机(FSM)理论进行编程设计,这个问题可以迎刃而解。
5、有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,有限状态机的状态(即由寄存器组各位的1和0的组合状态所构成的有限个状态)只能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态。本设计的有限个状态编码使用独热码形式,即寄存器组每一个bit位代表一种状态(如“0100”,“1000”为四态机中的两种状态),这种状态码的好处是避免了状态混乱。状态机采用Mealy型有限状态机,这种状态机的下一个状态不但取决于各个输入值,还取决于当前所在状态,符合UART的工作原理。逻辑控制模块、数据接收模块和发送模块的设计都使用到了状态机,其中以逻辑状态机为主状态机,其余两个为从状态机。确定各种工作状态和工作流
6、程后便可构建出状态图,方便直观地进行后续设计。通过状态图可以方便、准确地得到程序设计框图如图4所示。3 各模块设计31 波特率发生器串口通信必须要设定波特率,本设计采用的波特率为9 600 bits。产生波特率的时钟频率是越高越好,这样才可产生较高且精确的波特率。设计选用50M主频率要产生9600bits波特率,每传送一位数据需要5 20833个时钟周期。取一个最接近的数是5 208,则波特率为9 60061,其误差约为0006,误码率很低可以确保通信正常。波特率发生器要解决的另一个关键性问题是确保准确地捕获起始位“0”。即时准确地捕获起始位不仅决定通信是否顺畅开始,而且还影响后续的数据采样过
7、程可靠地进行。方案采取了16分频的波特率发生器,即通过对50 M总时钟源分频,得到一个9 600x16 Hz的时钟进行数据传输,这样每16个时钟信号采样1 bit数据。在Rxd数据接收端口接收到从空闲高电平“1”跳变为起始位低电平“0”信号后,连续8个分频周期确认是否是起始位。若是连续的低电平则捕获起始位,自此之后每16个时钟周期读取1 bit数据。这种方法不仅确保了起始位的准确捕获,而且使数据采样点处于了数据的正中央保证了数据的准确。32 接收器在波特率发生器捕获起始位并启动后,接收器将开始工作。其主要工作是接收每一位数据,将串行数据移位存入缓冲寄存器,并在接收完一字节数据后将数据存入锁存器
8、完成串并转换,同时发出char_ok信号通知逻辑控制模块一个字节的数据已经接收完毕。接收器的部分程序如下所示:33 逻辑处理模块逻辑处理模块是模拟UART的决策模块。它主要完成PC机与CPLD的握手、数据处理和数据校验、状态分析与给收发模块提供决策。PC机要向CPLD发数据时,先向串口发送FF,FF表示PC机要与CPLD建立联系。CPLD收到这个信息后,由逻辑模块的talk信号通知发射模块握手情况,发送器通过串口给PC机反馈信息,DD表示CPLD收到了PC机的要求并同意建立联系,CC表示握手不成功PC机可以再次发出请求。握手成功后,PC机要向CPLD发出命令字符,E1表示写,E2表示读。随后进
9、入数据接收或发送状态,每个数据包接收完毕后逻辑处理模块进入下一状态数据校验状态。根据上文提到的本设计的数据校验采用和校验,数据校验完后逻辑处理模块会根据校验结果给出信号check,通知发送模块Txd发送反馈信息给PC机。逻辑控制模块的部分程序如下所示:在逻辑接收模块中的重点是握手环节,它体现了PC机与CPLD相互对话的关键,后面两者的互相通信都是基于此而建立的。应用上述思路设计的握手环节时序仿真如图5所示。如图所示当char接收寄存器通过Rxd接收到一个字符信息后发出char_ok信号,经逻辑控制模块得知是握手信息FF后,触发握手成功talk信号,并在下一时钟上升沿Txd从空闲状态的高电平“1
10、”变为起始位“0”准备发送反馈信息给PC机。34 发送器发送器在接收逻辑处理模块给出的命令后发送相应的数据给PC机。发送内容主要包括:数据正确或握手成功信息DD,示意PC机继续下一步操作;数据重发或握手失败CC,示意PC机重新发送数据;以及PC机欲从嵌入式系统中读出的数据。4 实验验证工程设计的某嵌入式系统要求PC机向CPLD发送数据。CPLD选用ATREL公司的MAX7000系列芯片EPM7128SLC84-15。芯片拥有2 500个可使用门阵列、128个宏单元、8个逻辑阵列块、84个用户IO接口。CPLD的IO操作电平是TTL电平,通过MAX232电平转换芯片将PC机串口电平转换为TTL电平,就建立起了串口通信的电气基础。PC机上拥有VC+编写的数据下载程序,波特率为9600 bits,每个数据帧含1位起始位,8位数据位,无校验位,1位停止位。通信数据格式用上文提到的和校验数据格式,以数据包为单位发送,如图6所示。从实验结果可看到PC机每发送一个完整的15 Byte数据包,CPLD回复握手成功和数据校验正确,表明设计可行。5 结束语本文从工程设计实际出发,没有选取通用的UART芯片,通
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汉中职业技术学院马克思主义基本原理概论期末考试模拟题含答案解析(夺冠)
- 2024年湖南工商大学马克思主义基本原理概论期末考试题及答案解析(必刷)
- 文化创意产业投融资策略解析试题
- 2024年隆安县幼儿园教师招教考试备考题库带答案解析
- 社会实践能力:社区服务经验分享试题
- 2025年广州卫生职业技术学院单招综合素质考试题库附答案解析
- 2025年思南县 幼儿园教师招教考试备考题库附答案解析(必刷)
- 2025年武汉晴川学院马克思主义基本原理概论期末考试模拟题附答案解析(必刷)
- 2024年萍乡卫生职业学院马克思主义基本原理概论期末考试题带答案解析(必刷)
- 2025年广东食品药品职业学院单招职业适应性测试题库附答案解析
- 2025膝关节周围截骨术治疗膝关节骨关节炎指南建议(全文)
- 危重病人生命体征监测技巧
- 手机抵押协议书模板
- 2025 年大学运动人体科学(体能训练)上学期期末测试卷
- 政治中考试题及答案
- 中药湿热敷教学课件
- 2025年杭州余杭区招聘公办幼儿园劳动合同制职工考试笔试试题(含答案)
- 有色金属加工厂节能设计规范
- 安全生产四个清单
- 《生物与非生物》说课(附反思板书)(课件)四年级下册科学苏教版
- 《商业景观设计展示》课件
评论
0/150
提交评论