- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于atmega128和GM8125多路异步串行通信应用设计.doc
基于atmega128和GM8125多路异步串行通信应用设计
摘 要:
介绍了串口扩展芯片GM8125的特性以及芯片的初始化设置,设计了利用GM8125扩展普通的atmega128单片机串口的硬件电路,该硬件电路和程序算法实现了多达10台设备与主设备的通信,完成了多串口通信的功能,并给出了软件设计的思路和流程以及部分算法。经测试,此设计达到了设计目的,性能良好,系统扩展方便,并得到了很好的实际应用。
关键词:GM8125;atmega128单片机;串口;IIC总线
中图分类号:TP311.1
文献标识码:A文章编号:1005-3824(2014)05-0067-03
0 引 言
随着单片机在工业控制领域的应用越来越广泛,在很多场合需要用单片机对现场的信息进行采集与处理,并与上位机进行通信,这往往会遇到单片机串口不足的问题,所以需要对串口进行扩展。
在本文中需要完成把atmega128的2个异步串行口扩展成每一个串行口的五收一发的电路,所以此单片机不能单独地满足要求lt;supgt;[1]lt;/supgt;,需要专门的串口扩展芯片和单片机一起来完成所需要的功能,本文采用GM8125串口扩展芯片来进行设计。
1 GM8125
1.1 GM8125芯片简介
GM8125可以将1个全双工的标准串口扩展成5个标准的串口,各串口波特率可调,支持10位和11位2种数据帧长度,有效地解决了串口不足的问题。并能通过外部引脚控制串口的扩展模式:单通道工作模式和多通道工作模式,即可以指定一个子串口和母串口以相同的波特率单一地工作,也可以让所有子串口在母串口波特率基础上分频同时工作lt;supgt;[2]lt;/supgt;。
本文中该芯片工作在多通道模式下,子串口能主动响应从机发送的数据,并由母串口发给atmega128,同时返回子串口地址,通过对接收地址脚SRADD0-2的查询是哪个字串RXD1-5发来的数据。
1.2 GM8125芯片初始化
本文设置芯片工作在多通道模式下,初始化芯片时波特率为7 200 bit/s,初始化成功后波特率为57 600 bit/s,初始化流程图如图1所示。
图1 GM8125初始化流程图
2 设计要求
2.1 硬件设计要求
atmega128的2个串行分别接2个GM8125的母口,atmega128的IIC总线接口接主机的IIC总线接口lt;supgt;[3]lt;/supgt;。
2.2 软件设计要求
1)扩展的10路串口,用来传输打卡器数据,每张卡有11个数据,atmega128把收到的10路串口传输的数据进行编码,编码要求:给每路串口过来的数据加一个地址,以此来表示数据是从哪个串口打卡。
2)给以上数据的开头加上2个数据0xee,0xee来表示报头,给数据结尾加上2个数据0xed,0xed来表示报尾,这样每路串口的数据扩展到16个数,然后atmega128把数据通过IIC总线发给主机。
3 具体设计
3.1 硬件设计
图2是本设计中串口扩展电路部分,U6和U7都是GM8125串口扩展芯片,U1是单片机atmega128,U6-7的子口串口收发引脚TXD1和RXD1一直到TXD10和RXD10是接10路串口,用来传输10路串口过来的数据,U6的母口RXDA,TXDA接atmega128的串口0,U7的母口RXDB,TXDB接atmega128的串口1,这样就构成了10路串口与atmega128的通信。atmega128的PA口接U6的收发地址、复位、模式、选择引脚,atmega128的PC口接U7的收发地址、复位、模式选择引脚,这样atmega128可以对GM8125就行通信方式设置即GM8125芯片的初始化, atmega128的25和26脚接主机的IIC接口,就完成了把收到的10路串口数据最终发给主机硬件电路设计。
图2 串口扩展电路图
3.2 软件设计
1)对GM8125工作方式进行设置(GM8125初始化)包括串口帧格式和通信波特率设置。芯片进行工作方式设置时MS为‘0’,STADD20为‘000’时对芯片进行写命令字,MS为‘1’,STADD20和SRADD20全为0对芯片进行读命令字,完成命令字的设置后必须把STADD20置为非全0的值后,设置的命令字才能生效lt;supgt;[4]lt;/supgt;,图3是此设计中的某一个GM8125初始化对芯片进行读写设置的算法。
图3 GM8125初始化核心算法
2)图4是atmega128串口0接收数据的中断处理函数,此函数中把收到的数据存入到数组中,当收到的某一路串口数
文档评论(0)