一种uart多主实时通信系统的制作方法

文档序号:9754392阅读:254来源:国知局
一种uart多主实时通信系统的制作方法
【技术领域】
[0001]本发明涉及通信技术领域,特别涉及一种UART多主实时通信系统。
【背景技术】
[0002]I2C接口与CAN接口都具有多主仲裁功能,通过I2C总线或CAN总线可以实现多主实时通信。然而现有的单片机,许多都不具备I2C接口与CAN接口,如果要实现多主实时通信,要么选择通过扩展外挂一个CAN控制器的方式,要么选择采取模拟I2C通信程序,通过增设握手信号的方式来完成,但是这两种实现方式,其硬件电路的成本都较高,软件设计的实时性也较差,而且,CAN接口为了保证通信系统的实时性,它限定一帧有效数据包为O到8个字节,这在许多实际通信系统中带来不便。

【发明内容】

[0003]本发明的目的在于提供一种UART多主实时通信系统,旨在解决针对现有的单片机通过扩展外挂CAN控制器的方式或者通过采取模拟I2C通信程序,增设握手信号的方式来实现多主实时通信,其硬件电路的成本高,软件设计的实时性差的问题。
[0004]本发明是这样实现的,一种UART多主实时通信系统,包括单片机Ul,CAN收发器U2,总线仲裁单元,发送控制单元,所述单片机Ul的INT中断输入端连接所述总线仲裁单元,数据发送输出端TXD连接所述发送控制单元,P2.0输出端连接所述发送控制单元和所述CAN收发器U2的STB唤醒端,数据接收输入端RXD连接所述总线仲裁单元和所述CAN收发器U2的数据接收输出端RXD,所述CAN收发器U2的数据发送输入端TXD连接所述总线仲裁单元和所述发送控制单元,所述单片机Ul和CAN收发器U2的电源正端VCC分别连接电源端,负端GND分别接地。
[0005]进一步地,所述UART多主实时通信系统还包括去耦电容Cl、C2和电阻R6、R7,所述去耦电容Cl,C2分别连接在电源端和地之间,所述电阻R6连接在所述CAN收发器U2的CANH端和SPLIT端之间,所述电阻R7连接在所述CAN收发器U2的CANL端和SPLIT端之间。
[0006]进一步地,所述总线仲裁单元包括三极管Q1,电阻R4和R1,所述发送控制单元包括三极管Q2、Q3,电阻R2、R3和R5,所述单片机Ul的数据接收输入端RXD连接所述电阻R4的一端和所述CAN收发器U2的数据接收输出端RXD,所述电阻R4的另一端连接所述三极管Ql的集电极和所述单片机Ul的INT端,所述三极管Ql的发射极连接电源端,所述三极管Ql的基极连接电阻Rl的一端,电阻Rl的另一端连接所述CAN收发器U2的数据发送输入端TXD,所述单片机Ul的数据发送输出端TXD连接所述三极管Q2的发射极,所述三极管Q2的集电极连接所述CAN收发器U2的数据发送输入端TXD和所述电阻R3的一端,所述电阻R3的另一端连接电源端,所述三极管Q2的基极连接所述电阻R2的一端和所述三极管Q3的集电极,所述电阻R2的另一端连接电源端,所述三极管Q3的发射极接地,所述三极管Q3的基极连接所述电阻R5的一端,所述电阻R5的另一端连接所述单片机Ul的P2.0端和所述CAN收发器U2的STB端。
[0007]本发明的有益效果是:与现有技术相比,本发明的UART多主实时通信系统通过利用单片机的异步串行通信口 UART驱动CAN收发器来实现多主实时通信,解决了现有的单片机通过扩展外挂CAN控制器的方式或者通过采取模拟I2C通信程序,增设握手信号的方式来实现多主实时通信,其硬件电路的成本高,软件设计的实时性差的问题,本发明不仅节省了电路的生产成本,同时,由于还具有不限定小数据包、可插入紧急报警的特点,所以其实时性比CAN协议的实时通信系统更优越。
【附图说明】
[0008]图1为本发明提供的一种UART多主实时通信系统的模块框图;
图2为本发明提供的UART多主实时通信系统的一实施例的电路原理图;
图3为字节收发位的示意图;
图4为帧首字节位的示意图;
图5为轮巡式通行信息帧协议格式示意图;
图6为事件触发警报信息帧协议格式示意图;
图7为通信信道的仲裁与控制逻辑时序图;
图8为UART初始化程序的流程图;
图9为主程序启动UART发送函数的流程图;
图10为主程序处理UART接收解析函数的流程图;
图11为仲裁外部中断的中断服务程序的流程图;
图12为UART 口发送中断的中断服务程序的流程图;
图13为UART 口接收中断的中断服务程序的流程图。
【具体实施方式】
[0009]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0010]如图1所示为本发明提供的一种UART多主实时通信系统的模块框图,本发明提供的UART多主实时通信系统包括单片机Ul,CAN收发器U2,总线仲裁单元,发送控制单元,单片机Ul的INT中断输入端连接总线仲裁单元,数据发送输出端TXD连接发送控制单元,P2.0输出端连接发送控制单元和CAN收发器U2的STB唤醒端,数据接收输入端RXD连接总线仲裁单元和CAN收发器U2的数据接收输出端RXD,CAN收发器U2的数据发送输入端TXD连接总线仲裁单元和发送控制单元,单片机Ul和CAN收发器U2的电源正端VCC分别连接电源端,负端GND分别接地。
[0011]UART多主实时通信系统还包括去耦电容C1、C2和电阻R6、R7,去耦电容C1,C2分别连接在电源端和地之间,电阻R6连接在CAN收发器U2的CANH端和SPLIT端之间,电阻R7连接在CAN收发器U2的CANL端和SPLIT端之间。
[0012]如图2所TK为本发明提供的一种UART多主实时通信系统的一实施例的电路原理图,总线仲裁单元包括三极管Q1,电阻R4和Rl,发送控制单元包括三极管Q2、Q3,电阻R2、R3和R5,单片机Ul的数据接收输入端RXD连接电阻R4的一端和CAN收发器U2的数据接收输出端RXD,电阻R4的另一端连接三极管Ql的集电极和单片机Ul的INT端,三极管Ql的发射极连接电源端,三极管Ql的基极连接电阻Rl的一端,电阻Rl的另一端连接CAN收发器U2的数据发送输入端TXD,单片机Ul的数据发送输出端TXD连接三极管Q2的发射极,三极管Q2的集电极连接CAN收发器U2的数据发送输入端TXD和电阻R3的一端,电阻R3的另一端连接电源端,三极管Q2的基极连接电阻R2的一端和三极管Q3的集电极,电阻R2的另一端连接电源端,三极管Q3的发射极接地,三极管Q3的基极连接电阻R5的一端,电阻R5的另一端连接单片机Ul的P2.0端和CAN收发器U2的STB端。
[0013]在单片机Ul的异步串行通信口 UART启动发送前,单片机Ul的P2.0端输出低电平,CAN收发器U2被唤醒,三极管Q3截止,三极管Q2把单片机Ul的TXD端电平信号同相地传送到CAN收发器U2的TXD端。当单片机Ul的异步串行通信口 UART的数据发送一旦启动,异步串行通信口 UART就发送一完整字节,在这一字节的发送过程当中,如果CAN收发器U2的TXD端与RXD端的电平不一致,TXD呈隐性,RXD呈显性,那么,仲裁信号Arbitrt1n就送出下降沿外部中断请求信号
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1