CN104794089A - 适用于单片机的改进型uart通信的方法、装置及系统 - Google Patents
适用于单片机的改进型uart通信的方法、装置及系统 Download PDFInfo
- Publication number
- CN104794089A CN104794089A CN201510240332.1A CN201510240332A CN104794089A CN 104794089 A CN104794089 A CN 104794089A CN 201510240332 A CN201510240332 A CN 201510240332A CN 104794089 A CN104794089 A CN 104794089A
- Authority
- CN
- China
- Prior art keywords
- frame
- address
- uart
- machine
- addresses
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种适用于单片机的改进型UART通信的方法。该方法包括:在标准型UART上设置地址检测单元;主机向与其通信连接的多台单片机从机发送地址帧和数据帧;从机通过所述地址检测单元,将从机的地址与所述地址帧中的地址进行匹配,若地址匹配,从机中断当前的程序,以响应主机并接收所述数据帧,若地址不匹配,从机继续运行当前的程序。另外,本发明还公开了一种适用于单片机的改进型UART通信的装置及系统。本发明主机可以灵活向指定地址的从机发送信息,只有地址匹配时,从机才中断当前的程序,以响应主机并接收主机发送的数据帧,能有效提高数据处理效率,并降低单片机功耗。
Description
技术领域
本发明涉及计算机通信领域,尤其涉及一种适用于单片机的改进型UART通信的方法、装置及系统。
背景技术
通用异步收发器(Universal Asynchronous Receiver/Transmitter,UART)是一种被广泛应用的通信设备的接口,可以实现全双工的数据传输方式。标准UART所采用的通信方式为主机和从机一对一的通信方式,其通信能力受到了限制。另外,传统的主从式的多机通信系统,尤其是由单台主机和由多台单片机从机构成的主从式通信系统,在主机与从机串行通信时,主机向与其总线连接的各台从机发送信息。主机先发送信息的地址帧,随后发送信息的数据帧。每台从机均产生中断用于接收主机发送的地址帧信息,将收到的地址帧内容与自己的地址相比较,只有地址匹配时才会接收相应的数据帧。这样,主机每发送一次信息而传输地址帧时,所有从机不管该地址帧是否与自己的地址相匹配都会产生中断,而实际上能够与主机地址相匹配的地址只有一个。这样既增加了单片机功耗,又大大降低了数据处理效率。
发明内容
针对现有技术存在的各种缺陷,本发明的目的是提出一种能够有效提高数据处理效率,并降低单片机功耗的方法、装置及系统。
为此,根据本发明的一个方面,提供了一种适用于单片机的改进型UART通信的方法。该方法包括:
1)在标准型UART上设置地址检测单元;
2)主机向与其通信连接的多台单片机从机发送地址帧和数据帧;
3)从机通过所述地址检测单元,将从机的地址与所述地址帧中的地址进行匹配,
若地址匹配,从机中断当前的程序,以响应主机并接收所述数据帧,
若地址不匹配,从机继续运行当前的程序。
本发明所述方法中的主机可以灵活向指定地址的从机发送信息,只有地址匹配时,从机才中断当前的程序,以响应主机并接收其发送的数据帧,有效提高了数据处理效率,并降低单片机功耗。
在一些实施方式中,所述地址检测单元还配置为通过预设地址掩码寄存器所对应的从机地址寄存器中各位是否参与地址检测进行地址匹配。
本实施方式通过从机地址寄存器和地址掩码寄存器相互配合,以实现地址检测,过滤无效地址。此种设计方式简单、方便且可靠性高。
本领域的技术人员可以理解,本发明还可以添加其它类型的功能单元,或者增加或者减少寄存器的数量,只要能够达到地址检测的功能,这些均属于本发明保护范围。
在一些实施方式中,所述方法还包括:帧格式设置单元,所述帧格式设置单元配置为通过在标准型UART的帧格式的基础上,添加一位用于指示地址帧或数据帧的帧类型标识位,以设定改进型UART的帧格式。
本领域的技术人员可以理解,本发明还可以添加其它类型的帧类型标识位,或将帧类型标识位的顺序和位数进行调整,这些均属于本发明保护范围。
本实施方式通过增加帧类型标识位,用于指示地址帧或数据帧,与从机地址寄存器和地址掩码寄存器相配合,以实现地址检测。此种设计方式大大增加了选择地址的可靠性。
在一些实施方式中,所述改进型UART的帧格式包括:
起始位,配置为指示帧的开始位;
帧类型标识位,配置为指示地址帧或数据帧;
数据位,配置为存放地址或数据内容;
校验位,配置为对所述数据位中的数据进行奇偶校验;
停止位,配置为指示地址帧或数据帧的结束位。
根据本发明的另一个方面,提供了一种适用于单片机的改进型UART通信的装置,包括:标准型UART装置和设置于所述标准型UART装置的地址检测单元,所述地址检测单元配置为当主机向从机发送地址帧和数据帧时,将所述地址帧中的地址与从机的地址进行匹配,若地址匹配,则中断当前的程序,以响应主机并接收所述数据帧;
若地址不匹配,则继续运行当前的程序。
在一些实施方式中,所述地址检测单元,通过预设地址掩码寄存器中各位所对应的从机地址寄存器中各位是否参与地址检测进行地址匹配。
在一些实施方式中,所述装置还包括:设定改进型UART的帧格式,所述改进型UART的帧格式是通过在标准型UART的帧格式的基础上,添加一位帧类型标识位,用于指示地址帧或数据帧。
在一些实施方式中,所述改进型UART的帧格式包括:
起始位,配置为指示帧的开始位;
帧类型标识位,配置为指示地址帧或数据帧;
数据位,配置为存放地址或数据内容;
校验位,配置为对所述数据位中的数据进行奇偶校验;
停止位,配置为指示地址帧或数据帧的结束位。
根据本发明的另一个方面,包括主机、与所述主机通信连接的多台单片机从机和上述的改进型UART通信的装置。
本发明通过增加地址检测单元,使得主机可以灵活向指定地址的从机发送信息,只有地址匹配时,从机才中断当前的程序,以响应主机并接收主机发送的数据帧,能有效提高主机和从机的数据处理效率,并降低单片机功耗。
附图说明
图1为本发明一实施方式的用于单片机的改进型UART系统示意图;
图2为本发明一实施方式的改进型UART帧格式构成示意图。
具体实施方式
为便于本发明的技术方案和优点的理解,以下结合附图和具体实施例,对本发明做进一步详细说明。
在一些实施方式中,本发明在标准型UART的基础上做出改进,通过增加地址检测单元(本实施例中的地址检测单元包括2个自定义功能寄存器:从机地址寄存器UARTADDR和地址掩码寄存器UARTADMSK),以实现地址过滤功能。另外,为区别地址帧和数据帧,以便于地址检测,还可以对标准UART帧格式做出修改,在标准帧格式的基础上,添加一位帧类型标识位,用于指示地址帧或数据帧。若该帧类型标识位为1,则指示该帧为地址帧;若其为0,则指示该帧为数据帧。
图1示意性地显示了根据本发明一实施方式的用于单片机的改进型UART系统。该系统由单台主机和多台单片机从机构成。
如图1所示,该系统是由单台主机通过总线与多台单片从机构成的主从式UART通信系统。该系统中主机可以灵活地向任何一台或者多台从机发送信息,只有地址匹配的从机会产生中断并向主机发送应答信息,并接收相应的数据帧。
本实施例的具体实现方式为:在标准型UART的基础上做出改进,针对单台主机和多台单片机从机构成的主从式通信系统,增加了2个自定义功能寄存器,以实现地址检测,和修改UART帧,在标准帧格式的基础上,添加一位帧类型标识位,用于指示地址帧或数据帧。
上述增加的2个自定义功能寄存器分别是:从机地址寄存器UARTADDR和地址掩码寄存器UART ADMSK。这2个寄存器均为8位,仅需在单片机从机上设定。从机地址是否与主机发送的地址帧相匹配,由这2个寄存器共同决定。其中,从机地址寄存器UARTADDR,用于指示该主从式通信系统中的从机地址。地址掩码寄存器UARTADMSK,用于结合UARTADDR指示的从机地址实现对地址帧的检测,过滤一些无效地址。
其中,从机地址寄存器UARTADDR其地址编号范围为0x0-0xFF,可选择其中的任意地址编号作为从机地址编号。本实施例中规定地址0xFF为广播地址,即当地址帧内容为0xFF时,主机向所有单片机从机发送消息,此时不论从机地址掩码设为何值,所有单片机从机均需要产生中断来接收主机发送的地址帧和数据帧。
例如,这两个寄存器的设置方式可以为:
若地址掩码寄存器UARTADMSK中某位为1,则从机地址寄存器UARTADDR中对应地址位为相关位,该相关位参与地址的匹配检测;若该相关位的值与主机发送的地址帧的相关位值相同时,地址匹配成功,产生串行中断,并执行后续操作;若当该相关位的值与主机发送的地址帧的相关位的值不同时,地址不匹配,则不会产生中断,避免因多余的操作而降低功耗和数据处理效率。
若地址掩码寄存器UARTADMSK中某位为0,则从机地址寄存器UARTADDR中对应地址位为无关位,该无关位不参与地址检测,在进行地址匹配时忽略该位,该位可为任意值。
此外,也可以根据以下方式进行设置这两个寄存器:
若地址掩码寄存器UARTADMSK中某位为0,则从机地址寄存器UARTADDR中对应地址位为无关位,该无关位不参与地址的匹配检测;
若地址掩码寄存器UARTADMSK中某位为1,则从机地址寄存器UARTADDR中对应地址位为相关位,该相关位参与地址检测。
上述地址掩码寄存器UARTADMSK和从机地址寄存器UARTADDR仅需在单片机从机上设定,而无需在主机上设定。具体通过设置这两个寄存器的值,使得一个地址帧可对应多台单片机从机,且一台单片机从机也可对应多个地址。下面通过列举三个具体实施例来说明自定义的从机地址寄存器UARTADDR和地址掩码寄存器UARTADMSK相互配合以实现与主机地址匹配的过程:
第一实施例
单片机从机1的地址寄存器UARTADDR地址值设为11000001,地址掩码寄存器UARTADMSK设为11110101,则单片机从机1与地址帧相比较的实际地址值为1100x0x1,其中x代表是无关位,可以随意设置为0或者1,也就是说,若地址帧内容为11000001、11000011、11001001、11001011中任一值,则该地址帧与单片机从机1地址相匹配;
第二实施例
单片机从机2的地址寄存器UARTADDR地址值设为11000011,地址掩码寄存器UARTADMSK设为11110011,则单片机从机2与地址帧相比较的实际地址值为1100xx11,也就是说,若地址帧内容为11000011、11000111、11001011、11001111中任一值,则该地址帧与单片机从机2地址相匹配。
第三实施例
单片机从机1UARTADDR地址值设为11000001,地址掩码寄存器UARTADMSK设为11110101。单片机从机2的地址寄存器UARTADDR地址值设为11000011,地址掩码寄存器UARTADMSK设为11110011。
若主机发送的地址帧内容为11000001或11001001,主机则仅能访问单片机从机1;
若主机发送的地址帧内容为11000111或11001111,主机则仅能访问单片机从机2;
若主机发送的地址帧内容为11000011或11001011,主机则可同时访问单片机从机1和单片机从机2。
若主机发送的地址帧内容为11111111,主机则可同时访问单片机从机1、单片机从机2和该系统内的所有其他单片机从机。
若主机发送的地址帧内容为0xFF,不论从机地址掩码设为何值,所有单片机从机均需要产生中断来接收主机发送的地址帧和数据帧。因为本实施例中规定地址0xFF为广播地址,此时主机可以向所有单片机从机发送消息。
在上述主从通信系统中,当主机发送出地址帧后,单片机从机先将其地址与地址帧内容进行比较,若地址匹配,则产生串行中断,并执行后续接收数据的操作;若地址不匹配,则不会产生中断,避免因无效的中断而降低功耗和数据处理效率。
图2为本发明一实施方式的改进型UART帧格式构成示意图。由于地址匹配只针对地址帧,所以需要区别地址帧和数据帧,以便于单片机从机对地址进行检测。如图2所示,对标准UART帧格式做出修改,在标准帧格式的基础上,添加一位帧类型标识位,用于指示地址帧或数据帧。若该位为1,则指示该帧为地址帧;若为0,则指示该帧为数据帧。
具体的,该改进型UART帧中由低位至高位依次是:1位起始位,1位帧类型标识位,8位数据位,1位校验位和1位停止位。其中,起始位为0,停止位为1,分别用于指示地址帧或数据帧的始末;8位数据位用于存放地址或数据内容;校验位用于对8位数据位进行奇偶校验;帧类型标识位是在标准UART帧格式的基础上进行添加的,该位用于指示地址帧或数据帧,若该位为1,则该帧为地址帧,若该位为0,则该帧为数据帧。单片机从机通过帧类型标识位可区分地址帧和数据帧,以便进行后续处理。本发明中,对于地址匹配的单片机从机,该单片机从机在接收到地址帧后,向主机发送一应答帧,帧信息为该单片机从机的设定地址,规定应答帧中帧类型标识位固定为1。地址匹配的单片机从机在发送应答帧后,随后接收主机发送的数据帧。
以上所述的仅是本发明的一些实施方式。但在实际应用中并不应受上述具体实施方式的限制,可基于上述说明根据不同应用进行变通。对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (9)
1.一种适用于单片机的改进型UART通信的方法,包括:
1)在标准型UART上设置地址检测单元;
2)主机向与其通信连接的多台单片机从机发送地址帧和数据帧;
3)从机通过所述地址检测单元,将从机的地址与所述地址帧中的地址进行匹配,
若地址匹配,从机中断当前的程序,以响应主机并接收所述数据帧,
若地址不匹配,从机继续运行当前的程序。
2.根据权利要求1所述的方法,其中,所述地址检测单元通过预设地址掩码寄存器所对应的从机地址寄存器中各位是否参与地址检测进行所述地址匹配。
3.根据权利要求1所述的方法,其中,所述步骤3)还包括:在标准型UART的帧格式的基础上,通过添加一位用于指示地址帧或数据帧的帧类型标识位,以设定改进型UART的帧格式。
4.根据权利要求3所述的方法,其中,所述改进型UART的帧格式包括:
起始位,配置为指示帧的开始位;
帧类型标识位,配置为指示地址帧或数据帧;
数据位,配置为存放地址或数据内容;
校验位,配置为对所述数据位中的数据进行奇偶校验;
停止位,配置为指示地址帧或数据帧的结束位。
5.一种适用于单片机的改进型UART通信的装置,包括:标准型UART装置和设置于所述标准型UART装置的地址检测单元,
所述地址检测单元配置为当主机向从机发送地址帧和数据帧时,将所述地址帧中的地址与从机的地址进行匹配,
若地址匹配,则中断当前的程序,以响应主机并接收所述数据帧;
若地址不匹配,则继续运行当前的程序。
6.根据权利要求5所述的装置,其中,所述地址检测单元还配置为通过预设地址掩码寄存器所对应的从机地址寄存器中各位是否参与地址检测进行地址匹配。
7.根据权利要求5所述的装置,还包括:帧格式设置单元,所述帧格式设置单元配置为通过在标准型UART的帧格式的基础上,添加一位用于指示地址帧或数据帧的帧类型标识位,,以设定改进型UART的帧格式。
8.根据权利要求7所述的装置,其中,所述改进型UART的帧格式包括:
起始位,配置为指示帧的开始位;
帧类型标识位,配置为指示地址帧或数据帧;
数据位,配置为存放地址或数据内容;
校验位,配置为对所述数据位中的数据进行奇偶校验;
停止位,配置为指示地址帧或数据帧的结束位。
9.一种适用于单片机的改进型UART通信的系统,包括主机、与所述主机通信连接的多台单片机从机和如权利要求5-8任意一项所述的改进型UART通信的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510240332.1A CN104794089B (zh) | 2015-05-12 | 2015-05-12 | 适用于单片机的改进型uart通信的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510240332.1A CN104794089B (zh) | 2015-05-12 | 2015-05-12 | 适用于单片机的改进型uart通信的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104794089A true CN104794089A (zh) | 2015-07-22 |
CN104794089B CN104794089B (zh) | 2018-02-16 |
Family
ID=53558890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510240332.1A Active CN104794089B (zh) | 2015-05-12 | 2015-05-12 | 适用于单片机的改进型uart通信的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104794089B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718344A (zh) * | 2016-01-19 | 2016-06-29 | 中国电子科技集团公司第三十八研究所 | 一种基于uvm的fpga通用可配置uart协议的验证方法 |
CN106569976A (zh) * | 2016-11-16 | 2017-04-19 | 深圳拓邦股份有限公司 | 一种串口通信系统及通信方法 |
CN107273158A (zh) * | 2017-06-08 | 2017-10-20 | 广东美的暖通设备有限公司 | 程序升级方法及装置、主机、从机和多联机空调系统 |
CN108011692A (zh) * | 2017-06-30 | 2018-05-08 | 宁波方太厨具有限公司 | 一种用于单片机的数据通信方法 |
CN108390807A (zh) * | 2018-02-11 | 2018-08-10 | 宁波工程学院 | 一种基于单片机的多机通讯方法 |
CN109471818A (zh) * | 2018-11-22 | 2019-03-15 | 武汉虹识技术有限公司 | 总线结构实现方法及装置 |
CN110221937A (zh) * | 2019-06-05 | 2019-09-10 | 河南卫华重型机械股份有限公司 | 一种板间通信数据的解析方法 |
CN111581140A (zh) * | 2019-02-19 | 2020-08-25 | 瑞昱半导体股份有限公司 | 数据传输及处理方法以及从装置 |
CN112328518A (zh) * | 2020-11-09 | 2021-02-05 | 阳光电源股份有限公司 | 一种多路串行通信装置、系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1556608A (zh) * | 2004-01-05 | 2004-12-22 | 中兴通讯股份有限公司 | 利用通用异步收发器实现rs485主从多机通讯的方法 |
CN1971470A (zh) * | 2005-11-24 | 2007-05-30 | 厦门华侨电子股份有限公司 | 一种采用多用途辅助单片机的系统加密方法 |
US20120297233A1 (en) * | 2011-05-20 | 2012-11-22 | Texas Instruments Incorporated | Serial communications protocols |
-
2015
- 2015-05-12 CN CN201510240332.1A patent/CN104794089B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1556608A (zh) * | 2004-01-05 | 2004-12-22 | 中兴通讯股份有限公司 | 利用通用异步收发器实现rs485主从多机通讯的方法 |
CN1971470A (zh) * | 2005-11-24 | 2007-05-30 | 厦门华侨电子股份有限公司 | 一种采用多用途辅助单片机的系统加密方法 |
US20120297233A1 (en) * | 2011-05-20 | 2012-11-22 | Texas Instruments Incorporated | Serial communications protocols |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718344A (zh) * | 2016-01-19 | 2016-06-29 | 中国电子科技集团公司第三十八研究所 | 一种基于uvm的fpga通用可配置uart协议的验证方法 |
CN106569976A (zh) * | 2016-11-16 | 2017-04-19 | 深圳拓邦股份有限公司 | 一种串口通信系统及通信方法 |
CN107273158A (zh) * | 2017-06-08 | 2017-10-20 | 广东美的暖通设备有限公司 | 程序升级方法及装置、主机、从机和多联机空调系统 |
CN108011692A (zh) * | 2017-06-30 | 2018-05-08 | 宁波方太厨具有限公司 | 一种用于单片机的数据通信方法 |
CN108390807A (zh) * | 2018-02-11 | 2018-08-10 | 宁波工程学院 | 一种基于单片机的多机通讯方法 |
CN108390807B (zh) * | 2018-02-11 | 2020-12-15 | 宁波工程学院 | 一种基于单片机的多机通讯方法 |
CN109471818A (zh) * | 2018-11-22 | 2019-03-15 | 武汉虹识技术有限公司 | 总线结构实现方法及装置 |
CN109471818B (zh) * | 2018-11-22 | 2021-08-31 | 武汉虹识技术有限公司 | 总线结构实现方法及装置 |
CN111581140A (zh) * | 2019-02-19 | 2020-08-25 | 瑞昱半导体股份有限公司 | 数据传输及处理方法以及从装置 |
CN110221937A (zh) * | 2019-06-05 | 2019-09-10 | 河南卫华重型机械股份有限公司 | 一种板间通信数据的解析方法 |
CN112328518A (zh) * | 2020-11-09 | 2021-02-05 | 阳光电源股份有限公司 | 一种多路串行通信装置、系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104794089B (zh) | 2018-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104794089A (zh) | 适用于单片机的改进型uart通信的方法、装置及系统 | |
CN105703883B (zh) | 在统一协议通信中交换错误信息的装置、方法和系统 | |
CN101136828B (zh) | 一种基于rs485多主机有线串行通讯的方法 | |
CN102508812A (zh) | 一种基于spi总线的双处理器通信方法 | |
CN104572574A (zh) | 基于千兆以太网视觉协议的以太网控制器ip核及方法 | |
EP2389632B1 (en) | Communication protocol for sharing memory resources between components of a device | |
CN104270740A (zh) | 一种共卡槽t卡和sim卡的检测方法 | |
CN102957565B (zh) | 一种多主用设备冲突的处理方法和装置 | |
CN104796652A (zh) | 一种基于srio传输视频帧的数据传输方法和装置 | |
CN102231126B (zh) | 一种实现多核处理器中核间备份的方法及系统 | |
CN101345680A (zh) | 一种通讯系统的工作方法 | |
CN113992471B (zh) | 一种多主机与多从机的通讯系统及方法 | |
CN102420734A (zh) | 一种can总线拓扑结构实现系统 | |
CN201341158Y (zh) | Rs485网络的状态检测电路 | |
CN101345681A (zh) | 智能电器串行总线的主机的工作方法 | |
KR20140125311A (ko) | 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법 | |
CN104035905B (zh) | 通用串行总线装置及通用串行总线装置处理数据的方法 | |
JP2012010216A (ja) | 割込みシステム、ホスト装置、及び、周辺装置 | |
CN104850517A (zh) | 一种dma传输报文数据的方法及装置 | |
CN105512066B (zh) | 基于profibus的软起动器通讯协议转换装置及方法 | |
CN104050123B (zh) | 信息处理的方法及电子设备 | |
CN102447602A (zh) | Modbus与 Canbus通讯数据快速交换的系统 | |
CN213024391U (zh) | 一种车载终端串口扩展设备 | |
CN109165099B (zh) | 一种电子设备、内存拷贝方法及装置 | |
CN106909527A (zh) | 一种系统加速方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |