微处理器间I/O端口通信方法技术

技术编号:21184425 阅读:21 留言:0更新日期:2019-05-22 15:03
本发明专利技术提供一种微处理器间I/O端口通信方法,包括:发端MCU和收端MCU均使用定时器连续中断;发端MCU定时器和收端MCU定时器设置相同速率的定时中断;发端MCU的数据发送过程包括:将数据送到发送区,等待发送;检测发送区是否有数据,如有,则由发端MCU定时器的定时中断过程控制数据发送;每n个定时中断的时间相应只发送一位数据至发端MCU的I/O端口;n≥3;收端MCU的数据接收过程包括:由收端MCU定时器的定时中断过程控制数据接收:每次定时中断检测收端MCU的I/O端口,当检测到起始位,收端MCU定时器的定时中断过程控制接收I/O端口上的每一位数据;连续接收各数据位,并合成数据,然后送到接收区。本发明专利技术可节省MCU通信资源。

I/O Port Communication Method between Microprocessors

The invention provides an I/O port communication method between microprocessors, which includes: both the originating MCU and the receiving MCU use a timer to interrupt continuously; the originating MCU timer and the receiving MCU timer set the same rate of timing interruption; the data transmission process of the originating MCU includes: sending data to the sending area, waiting for transmission; detecting whether there is data in the sending area, if there is, by the originating MCU timer. Timing interruption process controls data transmission; each n timing interruption time correspondingly sends only one data to the I/O port of the originating MCU; n (> 3); the data receiving process of the receiving MCU includes: data receiving is controlled by the timing interruption process of the receiving MCU timer: each timing interruption detects the I/O port of the receiving MCU, and when the starting bit is detected, the timing interruption process control of the receiving MCU timer. Receive every bit of data on the I/O port; Continuously receive every bit of data, and synthesize the data, and then send it to the receiving area. The invention can save MCU communication resources.

【技术实现步骤摘要】
微处理器间I/O端口通信方法
本专利技术涉及微处理器与微处理器之间的通信方法,尤其是一种微处理器间I/O端口通信方法。
技术介绍
单片机与单片机之间的通信,一般使用片上的通信资源,比如片上的串行口UART,I2C等,但是,经常这些通信资源被其他设备使用,而片上的通用I/O端口经常会有多余。
技术实现思路
本专利技术的目的在于克服现有技术中存在的不足,提供一种微处理器间I/O端口通信方法,能够实现微处理器之间基于I/O端口的通信。本专利技术采用的技术方案是:一种微处理器间I/O端口通信方法,包括:发端MCU和收端MCU均使用定时器连续中断,数据发送和接收过程都在定时器中断过程中完成;发端MCU定时器和收端MCU定时器设置相同速率的定时中断;发端MCU的数据发送过程包括:1)将数据送到发送区,等待发送;2)检测发送区是否有数据,如有,则由发端MCU定时器的定时中断过程控制数据发送;每n个定时中断的时间相应只发送一位数据至发端MCU的I/O端口,先发送起始位,然后依次发送载荷数据的每一位,最后发送停止位;n≥3;收端MCU的数据接收过程包括:1)由收端MCU定时器的定时中断过程控制数据接收:每次定时中断检测收端MCU的I/O端口,当检测到起始位,收端MCU定时器的定时中断过程控制接收I/O端口上的每一位数据;2)连续接收各数据位,并合成数据,然后送到接收区。更优地,收端MCU在第一次检测到起始位后,下一次定时中断再检测并确认起始位后,才开始接收后续的数据。进一步地,发端MCU定时器的定时中断过程控制数据发送,具体包括:步骤S1,发端MCU的每一次定时中断,发送计数器累加1;步骤S2,判断数据发送是否结束,若是则进行步骤S3,若否则进行步骤S6;步骤S3,检查发送区是否有数据,若有则进行步骤S4,若否则进行步骤S7;步骤S4,发送计数器置0,重新计数;步骤S5,发送起始位,转步骤S7;步骤S6,按发送计数器的计数发送数据下一位;每n个定时中断的时间相应发送一位数据;步骤S7,一次定时中断完成。进一步地,收端MCU定时器的定时中断过程控制数据接收,具体包括:步骤R1,收端MCU的每一次定时中断,接收计数器累加1;步骤R2,判断一帧数据是否接收结束,若是则进行步骤R3,若否则进行步骤R6;步骤R3,判断是否检测到起始位,若是则进行步骤R4,若否则进行步骤R11;步骤R4,接收计数器置0,重新计数;步骤R5,准备接收数据;转步骤R11;步骤R6,判断接收计数器计数是否为1,若是则进行步骤R7,若否则进行步骤R9;步骤R7,判断是否检测到起始位,若是则进行步骤R11,若否则进行步骤R8;步骤R8,认定无数据,数据接收结束,转步骤R11;步骤R9,按接收计数器的计数接收数据下一位;每n个定时中断的时间相应接收一位数据;步骤R10,将接收到的每位数据发送到接收区;步骤R11,一次定时中断完成。更进一步地,步骤R9中,以每n个定时中断的时间中接收计数器的中间值对应的时刻进行数据接收。本专利技术的优点在于:1)使用MCU上的通用I/O端口通信,节省了通信资源。2)对于多组I/O端口通信可以使用同一个定时器。3)可实现全双工,半双工等通信方式以及可以自定义方式通信。附图说明图1为本专利技术的微处理器间I/O端口通信示意图。图2为本专利技术的软件流程示意图。图3为本专利技术的定时器中断流程中数据发送示意图。图4为本专利技术的定时器中断流程中数据接收示意图。图5为本专利技术的定时中断控制数据发送与接收示意图。具体实施方式下面结合具体附图和实施例对本专利技术作进一步说明。如图1所示,本专利技术提出的微处理器间I/O端口通信方法,可以使用一根通信线实现半双工通信,也可以使用两根通信线实现全双工通信等;发端MCU和收端MCU均使用定时器连续中断,以产生一个稳定的波特率;数据发送和接收过程都在定时器中断过程中完成;为了保证通信发送和接收的正确,发端MCU定时器和收端MCU定时器设置相同速率的定时中断;为了保证通信接收的正确,定时器连续定时中断的速率是数据波特率的3倍或以上;以3倍为例,发端MCU每3次定时中断只发送一位数据,收端MCU每3次定时中断只接收一位数据;所述数据包括起始位、载荷数据、停止位;发端MCU的软件控制数据发送过程:1)将数据送到发送区,等待发送;发送区是发端MCU中内存的一个区域;2)检测发送区是否有数据,如有,则由发端MCU定时器的定时中断过程控制数据发送;每n个定时中断的时间相应只发送一位数据至发端MCU的I/O端口,先发送起始位,然后依次发送载荷数据的每一位,最后发送停止位;n≥3,以保证通信接收正确;以8比特载荷数据为例,加上起始位、停止位,所要发送的一帧数据共有10比特;以上起始位、载荷数据的每一位、停止位按顺序出现在发端MCU与收端MCU的I/O端口之间通信线上;收端MCU的软件控制数据接收过程:1)由收端MCU定时器的定时中断过程控制数据接收:每次定时中断检测收端MCU的I/O端口;当检测到起始位,收端MCU定时器的定时中断过程控制接收I/O端口上的每一位数据;当n≥3时,可以在第一次检测到起始位后,下一次定时中断再检测并确认起始位后,才开始接收后续的数据;起始位可以约定是低电平0;例如n=3时,发端MCU发送的一帧数据,在前3个定时中断对应的那段时间中,始终将起始位放在发端I/O端口,通信线上也连续在3个定时中断的时间中出现起始位;收端MCU第一次检测到起始位后,下一次定时中断再去检测并确认起始位,才正式开始接收后续的各位数据;2)连续接收各数据位,并合成数据,然后送到接收区。以下详细说明发端MCU定时器的定时中断过程控制数据发送,以及收端MCU定时器的定时中断过程控制数据接收;如图3所示,发端MCU定时器的定时中断过程控制数据发送,具体包括:步骤S1,发端MCU的每一次定时中断,发送计数器累加1;发送一帧数据需要连续多次定时中断才能完成;步骤S2,判断数据发送是否结束,若是则进行步骤S3,若否则进行步骤S6;此步骤主要判断一帧数据是否已经发送完,若发完了,则进行新的一帧数据发送;步骤S3,检查发送区是否有数据,若有则进行步骤S4,若否则进行步骤S7;步骤S4,发送计数器置0,重新计数;步骤S5,发送起始位,转步骤S7;步骤S6,按发送计数器的计数发送数据下一位;每n个定时中断的时间相应发送一位数据;以每3个定时中断的时间相应发送一位数据为例,发送计时器分别为3、6、9、12、15、18、21、24、27依次发送8位载荷数据及停止位;具体如图5所示;步骤S7,一次定时中断完成。经过连续的多次定时中断,数据全部发送;如图4所示,收端MCU定时器的定时中断过程控制数据接收,具体包括:步骤R1,收端MCU的每一次定时中断,接收计数器累加1;步骤R2,判断一帧数据是否接收结束,若是则进行步骤R3,若否则进行步骤R6;步骤R3,判断是否检测到起始位,若是则进行步骤R4,若否则进行步骤R11;步骤R4,接收计数器置0,重新计数;步骤R5,准备接收数据;转步骤R11;步骤R6,判断接收计数器计数是否为1,若是则进行步骤R7,若否则进行步骤R9;步骤R7,判断是否检测到起始位,若是则进行步骤R11,若否则进行步骤R8;步骤R8,认定无数据,数据接收结束本文档来自技高网...

【技术保护点】
1.一种微处理器间I/O端口通信方法,其特征在于,包括:发端MCU和收端MCU均使用定时器连续中断,数据发送和接收过程都在定时器中断过程中完成;发端MCU定时器和收端MCU定时器设置相同速率的定时中断;发端MCU的数据发送过程包括:1)将数据送到发送区,等待发送;2)检测发送区是否有数据,如有,则由发端MCU定时器的定时中断过程控制数据发送;每n个定时中断的时间相应只发送一位数据至发端MCU的I/O端口,先发送起始位,然后依次发送载荷数据的每一位,最后发送停止位;n≥3;收端MCU的数据接收过程包括:1)由收端MCU定时器的定时中断过程控制数据接收:每次定时中断检测收端MCU的I/O端口,当检测到起始位,收端MCU定时器的定时中断过程控制接收I/O端口上的每一位数据;2)连续接收各数据位,并合成数据,然后送到接收区。

【技术特征摘要】
1.一种微处理器间I/O端口通信方法,其特征在于,包括:发端MCU和收端MCU均使用定时器连续中断,数据发送和接收过程都在定时器中断过程中完成;发端MCU定时器和收端MCU定时器设置相同速率的定时中断;发端MCU的数据发送过程包括:1)将数据送到发送区,等待发送;2)检测发送区是否有数据,如有,则由发端MCU定时器的定时中断过程控制数据发送;每n个定时中断的时间相应只发送一位数据至发端MCU的I/O端口,先发送起始位,然后依次发送载荷数据的每一位,最后发送停止位;n≥3;收端MCU的数据接收过程包括:1)由收端MCU定时器的定时中断过程控制数据接收:每次定时中断检测收端MCU的I/O端口,当检测到起始位,收端MCU定时器的定时中断过程控制接收I/O端口上的每一位数据;2)连续接收各数据位,并合成数据,然后送到接收区。2.如权利要求1所述的微处理器间I/O端口通信方法,其特征在于,收端MCU在第一次检测到起始位后,下一次定时中断再检测并确认起始位后,才开始接收后续的数据。3.如权利要求1所述的微处理器间I/O端口通信方法,其特征在于,发端MCU定时器的定时中断过程控制数据发送,具体包括:步骤S1,发端MCU的每一次定时中断,发送计数器累加1;步骤S2,判断数据发送是否结束,若是则进行步骤S3,若否则进行步骤S6;步骤S3,检查发送区是否有数据,若有则进行步骤S4,若否则进行步骤S...

【专利技术属性】
技术研发人员:李佳陈琰赵翔倪隆张为曲晓青朱兆鹰
申请(专利权)人:东莞蕾纳智能科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1