当前位置: 首页 > 范文大全 > 公文范文 >

基于atmega128和GM8125多路异步串行通信应用设计

时间:2022-03-24 09:07:50  浏览次数:

摘 要:

介绍了串口扩展芯片GM8125的特性以及芯片的初始化设置,设计了利用GM8125扩展普通的atmega128单片机串口的硬件电路,该硬件电路和程序算法实现了多达10台设备与主设备的通信,完成了多串口通信的功能,并给出了软件设计的思路和流程以及部分算法。经测试,此设计达到了设计目的,性能良好,系统扩展方便,并得到了很好的实际应用。

关键词:GM8125;atmega128单片机;串口;IIC总线

中图分类号:TP311.1

文献标识码:A文章编号:1005-3824(2014)05-0067-03

0 引 言

随着单片机在工业控制领域的应用越来越广泛,在很多场合需要用单片机对现场的信息进行采集与处理,并与上位机进行通信,这往往会遇到单片机串口不足的问题,所以需要对串口进行扩展。

在本文中需要完成把atmega128的2个异步串行口扩展成每一个串行口的五收一发的电路,所以此单片机不能单独地满足要求<sup>[1]</sup>,需要专门的串口扩展芯片和单片机一起来完成所需要的功能,本文采用GM8125串口扩展芯片来进行设计。

1 GM8125

1.1 GM8125芯片简介

GM8125可以将1个全双工的标准串口扩展成5个标准的串口,各串口波特率可调,支持10位和11位2种数据帧长度,有效地解决了串口不足的问题。并能通过外部引脚控制串口的扩展模式:单通道工作模式和多通道工作模式,即可以指定一个子串口和母串口以相同的波特率单一地工作,也可以让所有子串口在母串口波特率基础上分频同时工作<sup>[2]</sup>。

本文中该芯片工作在多通道模式下,子串口能主动响应从机发送的数据,并由母串口发给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总线接口<sup>[3]</sup>。

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的值后,设置的命令字才能生效<sup>[4]</sup>,图3是此设计中的某一个GM8125初始化对芯片进行读写设置的算法。

图3 GM8125初始化核心算法

2)图4是atmega128串口0接收数据的中断处理函数,此函数中把收到的数据存入到数组中,当收到的某一路串口数据完成时便进行处理<sup>[5]</sup>。

图4 串口0接收数据算法

3)图5是对扩展的10路串口的数据进行处理,给收到的每一路串口加上报头来标示某一路的数据开始,然后给每路串口加一个地址来标示每一路串口,最后给收到的每一路串口数据加上一个报头来标示某一路串口数据结束。

4)atmega128收到的十路串口数据通过IIC发送到主机,然后主机通过串口发送到电脑的数据测试结果如图6所示。从图6可以看到,EE EE 表示某一路串口数据的开始,01-0A表示对应的串口编号,ED ED 表示某一路串口的数据结束,其余的数据就是收到的卡号。

图5 数据处理算法

图6 测试结果

4 总 结

经过对基于此设计的实际产品进行测试,硬件设计和软件设计能实现并满足需求,通信良好,扩展性好,可通过IIC总线挂载一定数量的此设计与主机进行通信。此设计抗干扰能力好,适用于短距离通信。如果要进行长远距离和大数据量通信时应考虑其他的通信方式,比如CAN总线<sup>[6]</sup>。

参考文献:

[1]

徐益民,范红刚,苏凤武.零基础学AVR单片机[M].北京:机械工业出版社,2011:205-219.

[2] GM8125 1扩5的通用异步串口扩展芯片数据手册[EB/OL].(2004-04)[2014-04-07].http://wenku.baidu.com/view/aee11f76a417866fb84a8eca.html.

[3] 张华宇,谢风芹,王立滨.AVR单片机开发入门与典型实例[M].北京:机械工业出版社,2011:222-274.

[4] 一转多串口芯片GM8125的初始化程序[EB/OL].(2009-02) [2014-04-07].http://wenku.baidu.com/view/0f9a7e49e518964bcf847c79.html.

[5] 严雨,廉洁.AVR单片机C语言应用100例[M].北京:电子工业出版社,2012:150-200.

[6] 来清民.手把手教你学CAN总线[M].北京:北京航空航天大学出版社,2010:100-150.

作者简介:

李 杰(1988),男,四川巴中人,硕士研究生,主要研究方向为移动计算机与嵌入式。

Multiple asynchronous serial communication

application design based on atmega128 and GM8125

LI Jie, WANG Huajun

(College of Computer Science and Technology,Chengdu University of Technology,Chengdu 61005,P.R.China)

Abstract:This article will introduce the characteristics of serial port extending chip GM8125 and the chip initialization,and the designation of hardware circuit which extends common atmega128 MCU serial port by using GM8125.The hardware circuit and the program algorithm to realize the communication between over 10 devices and the primary device,complete serial communication function,and gives the ideas and process of software design and gives part of the algorithm.After testing,this design achieves purpose,It also owns convenient expanding systems and good performance, and has been well practical used.

Key words:GM8125,MCU of atmega 128,serial port,IIC BUS

推荐访问: 多路 通信 设计 atmega128 GM8125