- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
串口通用化的应用
串口通用化的应用
摘要本文基于FPGA的硬件平台,通过VHDL硬件描述语言设计一个方便调试、方便使用的串口通信模块,通过简单的设置之后就能满足于大部分设计需求的串口通用化模块。
【关键词】FPGAVHDL串口通信UART
1 串口通信简介
串口是串行接口(serial port)的简称。串口通信是指采用串行通信协议将数据逐个发送出去。
串口通信的两种基本串行通信方式包括同步通信和异步通信。
2 串口通信协议
所谓通信协议是指通信双方的一种约定。约定包括比特率、数据位、停止位和奇偶校验位。其中,奇偶校验位有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。
3 软件设计
3.1 波特率发生器
波特率发生器需要产生FPGA串口模块所需的波特率时钟信号,包括串口接收波特率时钟信号和串口发送波特率时钟信号,此处的串口接收波特率时钟信号为16倍的串口波特率时钟,串口发送波特率时钟信号为1倍的串口波特率时钟。波特率发生器使用计数器方式对输入的时钟信号进行分频,根据来自串口配置模块的“接收波特率时钟控制字”来具体实现,具体的实现方法如下:
当计数器等于“接收波特率时钟控制字”的一半时串口接收波特率时钟信号输出高电平,当计数器等于“接收波特率时钟控制字”时串口接收波特率时钟信号输出低电平;串口发送波特率时钟信号的产生方法同上。
3.2 串口接收
(1)接收起始位。为了起始位的正确接收,本设计采用16倍的串口波特率时钟信号(即串口接收波特率时钟信号)进行接收,当串口线出现低电平时计数器COUNT开始连续计数,当串口线出现低电平时计数器COUNT_L加1,否则计数器COUNT_L保持。当计数器COUNT开始判断同时将两个计数器清零,如果计数器COUNT_L大于10则起始位有效,并开始采集数据位。
另外,当RX等于0时计数器COUNT_H清零,否则计数器加1,当计数器COUNT_H的值大于32时表示串口线已无数据,即一帧数据接收完毕。
(2)接收数据位。接收数据位的原理与接收起始位的原理相同,不同的是数据位接收的位数较多,而且,当计数器COUNT等于15,计数器COUNT_L大于8时则表示数据位为0,如果计数器COUNT_L小于8则数据位为1,当接收到的数据位数等于串口配置模块的“接收数据位控制字”时则结束对数据位的接收,如果有校验位的话则转去接收校验位,否则转去接收停止位。
(3)接收校验位。接收校验位的原理与接收起始位的原理相同,当计数器COUNT等于15,计数器COUNT_L大于8时则表示校验位为0,如果计数器COUNT_L小于8则校验位为1,同时对所接收的所有数据位进行异或操作。如果串口通信的校验为偶校验且异或操作的结果等于接收的校验位的值,则表示所接收的串口数据正确,否则表示所接收的串口数据错误;。如果串口通信的校验为奇校验且异或操作的结果不等于接收的校验位的值,则表示所接收的串口数据正确,否则表示所接收的串口数据错误。校验为接收完毕之后转去接收停止位。
(4)接收停止位。当到了停止位的接收时表示一个字节数据接收完毕,此时即可对所接收的数据进行处理。如果校验位错误时则丢弃该个字节数据,否则在计数器COUNT的值处于1至5期间对数据进行存储,即将接收到的数据存入双扣RAM中,在计数器COUNT的值等于6时存储地址加1,同时转去接收下一个字节的起始位。
3.3 串口发送
串口发送较串口接收要简单得多。当接收到串口发送指令时,首先读取串口配置模块的参数,之后读取需要发送的数据并以串口发送波特率时钟信号按照串口协议将数据发送出去。
串口发送过程如下:
(1)发送1位起始位,读取“发送数据源控制字”,并根据“发送数据源控制字”读取数据源;
(2)发送数据位,如果发送的数据位的个数等于“发送数据位控制字”的值则数据位的发送结束,同时读地址加1;
(3)读取“发送校验位控制字”,并根据“发送校验位控制字”发送校验位;
(4)读取“发送停止位控制字”,并根据“发送停止位控制字”发送校验位。
3.4 串口配置
串口配置为串口通信模块的移植提供了一个简洁而又快速的设置窗口。串口配置的设置如下:
(1)接收波特率时钟控制字:16倍串口波特率时钟信号的分频倍数;
(2)发送波特率时钟控制字串口波特率时钟信号的分频倍数;
(3)接收数据位控制字:接收数据位控制字为一个字节的有效数据位数;
(4)发送数据位控制字:发送数据位控制字为发送一个字节数据的数据位数;
(5)接收校验位控制字:当串口通信校验为奇校验时接收校验位控制字等于“11”; 当串口通信校验为偶校验时接收校验位控
您可能关注的文档
- 中越边境跨境非婚生子女健康成长的研究概述.doc
- 中跨度体育馆屋盖结构选型的研究.doc
- 中越边境村寨“三通”建设情况及其的作用分析.doc
- 中轮拖某底盘传动箱加工线改进的研究.doc
- 中转站输油系统效率的影响因素及提高措施.doc
- 中轻度侵蚀区杨梅林套种植物阻控水土流失效益的研究.doc
- 中跨度轨道交通预应力混凝土连续梁的设计.doc
- 中运河综合整治工程防汛的方案.doc
- 中远物流有限公司家电物流的项目竞争优势形成浅析.doc
- 中远的经验融入当地 追求双赢.doc
- 2026年及未来5年蓝信流量统计日志系统项目市场数据调查、监测研究报告.docx
- 2026年及未来5年多功能烟气分析仪项目市场数据调查、监测研究报告.docx
- 2026年及未来5年热熔焊制45°弯头项目市场数据调查、监测研究报告.docx
- 2025年学历类自考中国文化概论-中国当代文学作品选参考题库含答案解析.docx
- 2026年及未来5年微控双温区锑扩散系统项目市场数据调查、监测研究报告.docx
- 2026年及未来5年变频电机转子项目市场数据调查、监测研究报告.docx
- 2026年及未来5年数显压力机项目市场数据调查、监测研究报告.docx
- 2026年及未来5年电话十台灯十时钟项目市场数据调查、监测研究报告.docx
- 2026年及未来5年移动空调控制板项目市场数据调查、监测研究报告.docx
- 2026年及未来5年大豆纤维服饰项目市场数据调查、监测研究报告.docx
原创力文档


文档评论(0)