CN108390807B - 一种基于单片机的多机通讯方法 - Google Patents
一种基于单片机的多机通讯方法 Download PDFInfo
- Publication number
- CN108390807B CN108390807B CN201810140434.XA CN201810140434A CN108390807B CN 108390807 B CN108390807 B CN 108390807B CN 201810140434 A CN201810140434 A CN 201810140434A CN 108390807 B CN108390807 B CN 108390807B
- Authority
- CN
- China
- Prior art keywords
- slave
- data
- priority
- communication
- frame
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种基于单片机的多机通讯方法,实现多个单片机的主从式通讯,各个单片机之间采用RS422总线连接。主机利用数据长度、扫描次数、从机地址计算各个从机优先级,进而分配数据传输次序,直到所有数据传输完成,最后通过通讯效能量化的方法,评估通讯效率,作为优先级参数优化的依据。本发明动态调整优先级,量化通讯效能优化参数,既保证优先级,又充分利用线路通讯资源。本发明实现简单,满足实际应用的需要。
Description
技术领域
本发明涉及一种基于单片机的多机通讯方法。
背景技术
单片机系统十分广泛,由于单片机的系统资源有限,通讯成为单片机系统应用的瓶颈,尤其是在系统中有多个处理器的情况,单片机显得力不从心。为了应对多个处理器的情况,很多的通讯方法也被提出来,比如发明专利“一种基于UART的主从多机通讯系统及方法(申请号201610977199.2)”,论文“计算机与51系列单片机多机通讯的实现(作者:程万胜等)”、“单片机RS-485多机通讯技术(作者:姜地)”、“基于RS-422总线的单片机多机通讯接口的设计与实现(作者:桑胜举等)”等。这些方法往往在优化的过程中,只关注了某些方面,而在应用过程中,需要考虑优先级、信息的先来先到次序、短作业任务优先的问题,从而实现设备高利用率。而且在大部分的方法没有进行效果评估,不能自适应调整,导致应用效果不佳。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种能够动态优化、响应快、利用率高的多单片机通讯方法。
为实现上述目的,本发明提供一种基于单片机的多机通讯方法,包括一主机和多个从机,主机和从机之间通过RS422总线连接。通讯方法包括如下步骤:
1)主机逐个给从机发送指令帧,扫描从机状态,指令帧包括起始位、从机地址Sn、发送询问和要求发送四部分信息;主机若有数据发送给从机,可以给从机发送数据帧,主机数据帧包括起始位、从机地址Sn、数据三部分信息;
2)从机发送优先级帧,优先级帧包括起始位、主机地址、优先级信息p和待发送数据长度L;
3)主机计算从机优先级,安排各从机发送顺序,从机优先级SP计算方法如下:
SP=p·(aL+b/M)+c·Sn
其中M是扫描次数M=1,2,3,…,每次加1,a、b、c是常量参数;
4)主机给优先级最高的从机发送指令帧,从机发送数据帧,从机数据帧包括起始位、主机地址和数据;
5)主机重复步骤1-4,直到所有数据发送完毕;
6)量化通讯效能f,判断是否对a、b、c参数优化,供下次通讯计算调整优先级,若f>Th(Th为常量1.1),则调整参数a、b、c,否则不调整,计算通讯效能f方法如下:
其中,Wi为第i条从机通讯数据等待扫描次数,p为数据优先级,k为通讯数据总数。
优选的,主机指令帧和数据帧的起始位分别为3个脉冲和2个脉冲,从机优先级帧和数据帧的起始位分别为3个脉冲和2个脉冲。
综上所述,本发明的多机通讯方法简化了通讯信息帧,动态调整优先级,可使从机根据不同的优先级向主机传输数据,这样可避免出现总线系统出现死循环,保证总线系统的通讯资源得到充分利用,并且通过评估通讯效能,优化参数,提升了通讯效率。主机指令帧、数据帧和从机优先级帧、数据帧采用起始位脉冲个数区分,简化了通讯数据量,实现简单。
附图说明
图1为本发明多机通讯方法流程图。
图2为本发明多机通讯的系统框图。
图3为本发明多机通讯方法主机指令帧。
图4为本发明多机通讯方法主机数据帧。
图5为本发明多机通讯方法从机优先级帧。
图6为本发明多机通讯方法从机数据帧。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地实施。本发明一种基于单片机的多机通讯系统如图2所示,假设系统由1个主机和3个从机,主机和从机均由单片机构成,并且通过RS422相连。主机和从机统一编址,主机地址为00,3个从机地址依次为01,10,11。从机数量可根据实际情况增加,通讯方法如图1所示,包括如下步骤:
1)主机逐个给从机发送指令帧,扫描从机状态,指令帧包括起始位、从机地址Sn、发送询问和要求发送四部分信息,如图3所示,信息各个部分长度根据实际情况设置。主机指令帧起始位为3个脉冲,从机地址Sn分别为01,10,11,发送询问是主机询问从机是否有数据要发送,0表示询问,1表示不询问,要求发送是主机要求从机立即发送数据,0表示立即发送,1表示不发送。开始,主机给1号从机、2号从机、3号从机分别发送0101、1001、1101,注意还有起始位3个脉冲。
主机若有数据发送给从机,可以给从机发送数据帧,主机数据帧包括起始位、从机地址Sn、数据三部分信息,如图4所示,信息各个部分长度根据实际情况设置。主机给3个从机发送数据帧中的地址分别为01、10、11,主机数据帧的起始位为2个脉冲,数据位数定为5位。
2)从机发送优先级帧,优先级帧包括起始位、主机地址、优先级信息p和待发送数据长度L,如图5所示,信息各个部分长度根据实际情况设置,从机优先级帧的起始位为3个脉冲。从机接收到主机指令帧,回复优先级帧,假设从机1、2、3均有发送数据的要求,且发送优先级分别为11、00、01,优先级越小优先级越高,00是最高优先级,11优先级最低。从机待发送给主机的数据长度分别为2、3、4。因此,从机1、2、3发送给主机的优先级帧分别为0011010、0000011、0001100,注意还有起始位3个脉冲。
3)主机计算从机优先级,安排各从机发送顺序,从机优先级SP计算方法如下:
SP=p·(aL+b/M)+c·Sn
其中M是扫描次数M=1,2,3,…,每次加1,a、b、c是常量参数,初始均取为1。
根据从机回复的优先级帧,由上式计算从机优先级SP。1号从机的优先级SP=3·(2+1/1)+1=10;2号从机的优先级SP=0·(2+1/1)+2=2;3号从机的优先级SP=1·(4+1/1)+3=8;从机优先级从高到低为2号、3号、1号。此处优先级计算考虑了数据长度、优先级和编号,优化了通讯效率,最大限度挖据通信效能。
4)主机给优先级最高的从机发送指令帧,从机发送数据帧,从机数据帧包括起始位、主机地址和数据,如图6所示,信息各个部分长度根据实际情况设置。主机给2号从机发送指令帧,让2号机发送数据,主机给2号从机发送的指令帧为起始位3个脉冲+1010,从机发送的数据帧的起始位为2个脉冲+00+3个数据。
5)主机重复步骤1-4,直到所有数据发送完毕。主机再次给2号从机发送指令帧,询问2号机是否有数据发送,给2号从机发送指令帧为起始位3个脉冲+1001.假设2号从机还有长度为5的数据要发送,优先级11,因此号从机回复的优先级帧为起始位3个脉冲+0011101.根据从机回复的优先级帧,计算从机优先级SP。1号从机的优先级SP=3·(2+1/2)+1=8.5;2号从机的优先级SP=3·(5+1/1)+2=20;3号从机的优先级SP=1·(4+1/2)+3=7.5;从机优先级从高到低为3号、1号、2号。主机给3号从机发送指令帧让其发送数据,假设后面只有1号、2号从机数据待发送,直到所有从机数据发送完成,此次通讯完成。
6)量化通讯效能f,判断是否对a、b、c参数优化,供下次通讯计算调整优先级,若f>Th(Th为常量,初始取为1.1),则调整参数a、b、c,否则不调整,计算通讯效能f方法如下:
其中,Wi为第i条从机通讯数据等待扫描次数,p为数据优先级,k为通讯数据总数。上述通讯过程中,第1条从机数据扫描次数为3,优先级为3;第2条从机数据扫描次数为1,优先级为0;第3条从机数据扫描次数为2,优先级为1;第4条从机数据扫描次数为3,优先级为2。代入上式:
通讯效能达到要求,不需要优化a、b、c参数。如果没有达到通讯效能要求,根据通讯数据长度调整参数,如果通讯数据长度太长,a、b、c参数分别减小、增大、减小,如果通讯数据长度太长,a、b、c参数分别增大、减小、增大,调整优先级,使得通讯效能满足要求。通讯效能函数设计的思路就是考虑优先级情况下,各条通讯数据等待时间最短,既保证优先级,又充分利用线路通讯效率,达到最优效果。
综上所述,本发明动态调整优先级,可使从机根据不同的优先级向主机传输数据,这样可避免出现总线系统出现死循环,保证总线系统的通讯资源得到充分利用,并且通过评估通讯效能,优化参数,既保证优先级,又充分利用线路通讯效率。主机指令帧、数据帧和从机优先级帧、数据帧采用起始位脉冲个数区分,简化了通讯数据量,实现简单。本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
Claims (2)
1.一种基于单片机的多处理器通讯方法,其特征在于主机和从机均由单片机组成,多处理器通过RS422接口相连,通讯方法包括如下步骤:
1)主机逐个给从机发送指令帧,扫描从机状态,指令帧包括起始位、从机地址Sn、发送询问和要求发送四部分信息;主机若有数据发送给从机,可以给从机发送数据帧,主机数据帧包括起始位、从机地址Sn、数据三部分信息;
2)从机发送优先级帧,优先级帧包括起始位、主机地址、数据优先级p和待发送数据长度L;
3)主机计算从机优先级,安排各从机发送顺序,从机优先级SP计算方法如下:
SP=p·(aL+b/M)+c·Sn
其中M是扫描次数,M=1,2,3,…,每次加1,a、b、c是常量参数;
4)主机给优先级最高的从机发送指令帧,从机发送数据帧,从机数据帧包括起始位、主机地址和数据;
5)主机重复步骤1)-4),直到所有数据发送完毕;
6)量化通讯效能f,判断是否对a、b、c参数优化,供下次通讯计算调整优先级,若f>1.1,
则调整参数a、b、c,否则不调整,计算通讯效能f方法如下:
其中,Wi为第i条从机通讯数据等待扫描次数,p为数据优先级,k为通讯数据总数。
2.根据权利要求1所述的一种基于单片机的多处理器通讯方法,其特征在于:主机指令帧和数据帧的起始位分别为3个脉冲和2个脉冲,从机优先级帧和数据帧的起始位分别为3个脉冲和2个脉冲。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810140434.XA CN108390807B (zh) | 2018-02-11 | 2018-02-11 | 一种基于单片机的多机通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810140434.XA CN108390807B (zh) | 2018-02-11 | 2018-02-11 | 一种基于单片机的多机通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108390807A CN108390807A (zh) | 2018-08-10 |
CN108390807B true CN108390807B (zh) | 2020-12-15 |
Family
ID=63068632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810140434.XA Active CN108390807B (zh) | 2018-02-11 | 2018-02-11 | 一种基于单片机的多机通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108390807B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109413217B (zh) * | 2018-12-31 | 2021-06-08 | 宁波工程学院 | 一种农业物联网数据通讯方法 |
CN110018659A (zh) * | 2019-04-18 | 2019-07-16 | 承德石油高等专科学校 | 一种单片机通讯系统及其通讯方法 |
CN112087535B (zh) * | 2020-09-17 | 2022-10-28 | 山东科大机电科技股份有限公司 | 一种总线地址自动检测装置、系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736019A (zh) * | 2012-07-17 | 2012-10-17 | 宁波工程学院 | 电路板柔性检测系统及检测方法 |
CN104794089A (zh) * | 2015-05-12 | 2015-07-22 | 中国电子科技集团公司第四十七研究所 | 适用于单片机的改进型uart通信的方法、装置及系统 |
CN107528798A (zh) * | 2016-06-22 | 2017-12-29 | 宁波工程学院 | 基于rs485总线系统的优化调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166821A (zh) * | 2011-12-12 | 2013-06-19 | 深圳市华为安捷信电气有限公司 | 实现串口通信的方法、设备及系统 |
-
2018
- 2018-02-11 CN CN201810140434.XA patent/CN108390807B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736019A (zh) * | 2012-07-17 | 2012-10-17 | 宁波工程学院 | 电路板柔性检测系统及检测方法 |
CN104794089A (zh) * | 2015-05-12 | 2015-07-22 | 中国电子科技集团公司第四十七研究所 | 适用于单片机的改进型uart通信的方法、装置及系统 |
CN107528798A (zh) * | 2016-06-22 | 2017-12-29 | 宁波工程学院 | 基于rs485总线系统的优化调度方法 |
Non-Patent Citations (1)
Title |
---|
基于RS-422总线的单片机多机通讯接口的设计与实现;桑胜举,张华,沈丁,安琦;《泰山学院学报》;20081130;第30卷(第6期);5-10 * |
Also Published As
Publication number | Publication date |
---|---|
CN108390807A (zh) | 2018-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108390807B (zh) | 一种基于单片机的多机通讯方法 | |
EP3255553B1 (en) | Transmission control method and device for direct memory access | |
CN105528330B (zh) | 负载均衡的方法、装置、丛集和众核处理器 | |
RU2568292C2 (ru) | Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия | |
US20070214307A1 (en) | Dynamically setting routing information to transfer input output data directly into processor caches in a multi processor system | |
CN103714027B (zh) | 一种直接内存存取控制器的数据传输方法及装置 | |
WO2018107751A1 (zh) | 一种资源调度装置、系统和方法 | |
WO2017185285A1 (zh) | 图形处理器任务的分配方法和装置 | |
CN112711550A (zh) | Dma自动配置模块和片上系统soc | |
CN109005223A (zh) | 物联网资源调度方法及系统、计算机可读存储介质和终端 | |
KR20220038497A (ko) | 기계-학습 워크로드들에 대한 작업 스케줄링 | |
CN113946450A (zh) | 一种用于k8s微服务框架的自适应带权轮询负载均衡系统 | |
US20110246667A1 (en) | Processing unit, chip, computing device and method for accelerating data transmission | |
CN103853676B (zh) | 基于PCIe总线的信道分配、释放、数据传输方法和系统 | |
EP2913759B1 (en) | Memory access processing method based on memory chip interconnection, memory chip, and system | |
EP3355525B1 (en) | Computing apparatus, node device, and server | |
KR20140071194A (ko) | 집합 통신 수행 방법 및 이를 이용한 집합 통신 시스템 | |
WO2018170732A1 (zh) | 一种边缘云架构下服务部署的方法和装置 | |
WO2021134459A1 (en) | Ai intelligentialization based on signaling interaction | |
CN106445661A (zh) | 一种动态优化方法及系统 | |
US20210191754A1 (en) | User-defined metered priority queues | |
US8060667B2 (en) | Apparatus and method for processing high speed data using hybrid DMA | |
CN110096374B (zh) | 内部多类别的计算单元之间通信中间件控制系统及方法 | |
CN113961489B (zh) | 数据访问的方法、装置、设备及存储介质 | |
CN118012796B (zh) | 中断资源管理方法、计算机设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |