近端一对多串行总线的拓展接口电路以及通信方法与流程

文档序号:14195040阅读:807来源:国知局
近端一对多串行总线的拓展接口电路以及通信方法与流程

本发明涉及数字电路及总线技术领域,具体涉及一种近端一对多串行总线的拓展接口电路以及通信方法。



背景技术:

串行总线通信是在单片机使用中常见的方式,但是由于其自身特性的限制,单片机自带的uart通信往往只能实现一对一串行通信,无法实现一对多的通信方式。现有的串行通信一对多技术采用rs485总线进行拓展实现,rs485总线适用于工业现场等远端一对多通信的场合,对于近端通信使用rs485往往大材小用,既造成浪费,也占用额外的空间。另外,现有的近端一对多通信技术往往不支持热插拔,例如iic通信等,若在使用过程中需要移除设备,往往会引起总线通信错误从而影响全局的通信。所以对于一主多从的模块化设备来说,可以热插拔同时还可兼容串行通信的接口可以大大提高设备的易用性。



技术实现要素:

为了解决上述技术问题中的不足,本发明的目的在于:提供一种近端一对多串行总线的拓展接口电路以及通信方法,既可以在不增加rs485总线的前提下实现串行通信的一对多双向通信,而且支持热插拔。

本发明为解决其技术问题所采用的技术方案为:

所述近端一对多串行总线的拓展接口电路,包括置在主机内的控制器和外接设备,控制器外扩6线端口,分别为vcc、gnd、rx、tx、cs和ol,控制器的串行通信发射端口tx直接与多个外接设备的串行通信接收端口rx相连接,控制器的串行通信接收端口rx外接多选一模拟开关,多选一模拟开关还分别与外接设备的串行通信发射端口tx相连接,控制器的数字输出引脚分别与多选一模拟开关以及译码器相连接,译码器的译码输出端与外接设备的cs端口相连接,外接设备的ol端与并入串出移位寄存器相连接,并入串出移位寄存器接入控制器,外接设备的ol端下拉至gnd,并入串出移位寄存器的并行输入端接上拉到高电平。

进一步优选,外接设备的ol端与控制器的数字输入引脚直接相连。

进一步优选,主机的控制器采用atmega2560,外接设备的控制器采用atemga328p,主机和从机的控制器均使用uart0进行串口通信。

采用近端一对多串行总线的拓展接口电路的通信方法,包括以下步骤:

a、控制器读取并入串出移位寄存器的状态或直接读取各外接设备ol端口的状态,判断哪些端口有设备接入:读取值为低电平的对应ol端口有外接设备接入,读取值为高电平的ol端口无设备接入;

b、控制器根据步骤a获取的外接设备接入的信息,数字输出引脚输出对应逻辑值,控制多选一模拟开关打开对应的外接设备的接收通道,并控制译码器将对应外接设备的cs端置于高电平,外接设备读取cs端可知已被片选,由于已经获取过了外接设备的接入信息,未接入外接设备的端口将会直接跳过;

c、控制器从低位开始,逐个与被片选的对应外接设备进行串口通信,若通信过程数据传输超时,则跳过当前设备与下一个建立连接,按照有效的外接设备接入顺序逐个通信直至到最后一个外接设备。

与现有技术相比,本发明具有以下有益效果:

本发明在不增加rs485总线的前提下,实现了近端串行通信的一对多双向通信,大大优化了近端一主机对多从机通信设备的易用性,使用更少的控制端口操作更多外设,大大优化了单片机资源,并且在通信过程中支持外设的热插拔,实际使用中可以根据需求灵活变化,根据基本通信方式可以拓展出其他总线控制方式。

附图说明

图1本发明电路连接关系示意图;

图2本发明总线控制流程示意图;

图3本发明译码电路图;

图4本发明选通电路图;

图5本发明并入串出移位寄存器的电路图。

具体实施方式

下面结合附图对本发明实施例做进一步描述:

实施例1

如图1-2所示,本发明所述近端一对多串行总线的拓展接口电路,包括置在主机内的控制器、多选一模拟开关、译码器、并入串出移位寄存器和外接设备,控制器外扩6线端口,分别为vcc、gnd、rx、tx、cs和ol。

控制器的串行通信发射端口tx直接与多个外接设备的串行通信接收端口rx相连接,当控制器发送信息时,多个设备可以同时收到。

针对uart串行通信的rx端不可同时接入多个tx,则需设计选通方式进行分时接受。控制器的串行通信接收端口rx外接多选一模拟开关,多选一模拟开关还分别与外接设备的串行通信发射端口tx相连接。

控制器的数字输出引脚分别与多选一模拟开关以及译码器相连接,控制器通过改变数字输出引脚的输出逻辑值来控制选通的通道和所选的外接设备。这样设计在某些只需要接受外接设备的场合下,通过片选线可直接激活外接设备向主控制器发送数据,节省了主控制器发送请求数据的时间。

译码器的译码输出端与外接设备的cs端口相连接,当外接设备读取cs端为高电平时,则外接设备被选通,其串行通信发射端口tx与控制器的rx端相连接。

为了实现外接设备的热插拔,控制器要实时获取外接设备的接入情况,外接设备的ol端与并入串出移位寄存器相连接,并入串出移位寄存器接入控制器,外接设备的ol端下拉至gnd,并入串出移位寄存器的并行输入端接上拉到高电平。当外接设备未接入时,并入串出移位寄存器读取该外接设备ol逻辑值为高电平,当外接设备接入时,并入串出移位寄存器的并行输入端被下拉,读取对应ol端为低电平。若控制器引脚资源充分,可直接将设备ol端与控制器的数字输入引脚直接相连,用于判断设备是否接入。

采用近端一对多串行总线的拓展接口电路的通信方法,包括以下步骤:

a、控制器读取并入串出移位寄存器的状态或直接读取各外接设备ol端口的状态,判断哪些端口有设备接入:读取值为低电平的对应ol端口有外接设备接入,读取值为高电平的ol端口无设备接入;

b、控制器根据步骤a获取的外接设备接入的信息,数字输出引脚输出对应逻辑值,控制多选一模拟开关打开对应的外接设备的接收通道,并控制译码器将对应外接设备的cs端置于高电平,外接设备读取cs端可知已被片选,由于已经获取过了外接设备的接入信息,未接入外接设备的端口将会直接跳过;

c、控制器从低位开始,逐个与被片选的对应外接设备进行串口通信,若通信过程数据传输超时,则跳过当前设备与下一个建立连接,按照有效的外接设备接入顺序逐个通信直至到最后一个外接设备。

实施例2

如图3-5所示,主机的控制器采用atmega2560,外接设备的控制器采用atemga328p,主机和从机的控制器均使用uart0进行串口通信,设计8从机电路,译码器选择3-8译码器芯片74hc138,选通其使用74hc4051,并入串出移位寄存器选择74hc165。

译码电路:使用atemga2560的pl0、pl1、pl2三个引脚作为译码器和选通器的控制引脚,其网络名称为sel_a、sel_b、sel_c。sel_0-7分别为八个外接设备的cs端口,用于片选外接设备。

使用atemga2560的pg0、pg1作为并入串出移位寄存器的控制端,pd7作为并入串出移位寄存器数据的接收端。网络名称分别是online_clk、online_lock、onilne_data、online_0-7分别为八个外设的ol端口,当有设外接备接入时,ol引脚拉低。

外接设备的接口形式灵活,可以使用xh2.0、rj12等紧凑的6pin接口或者其它所需的6pin接口形式。

选通电路与图3的译码电路有共同的地址线,当地址线控制译码器选通了外接设备时,选通电路也打开对应选通设备的通道,用于串口选通通信。

下面举例说明接口电路的通信方法:

八个外接设备的接口编号分别是0-7,若仅有端口0、1、4、7有设备接入,其它端口无外接设备接入时,系统开始运行。

a、主机的控制器读取并入串出移位寄存器的二进制值为00110110(本案例使用低位在先,可根据需求更换设计方案实现高位在先),则本通信周期内,主控制器仅与0、1、4、7号端口通信;

b、主机的控制器的选通信号输出000,选通0号通道导通,译码器选中0号设备;

c、主机的控制器与0号设备通信。

重复步骤b-c完成与1、4、7外接设备的通信,完成后执行步骤a。若这个通信周期中3号设备接入则在完成本周期的通信后重做步骤a时,读取到移位寄存器的值为00100110,则下一个通信周期主机轮流访问0、1、3、4、7号设备。

通过上述的电路原理与控制方法,实现了8外设近端一对多可热插拔串行总线,实际使用中可以根据需求灵活变化,使用更少的控制端口操作更多外设,大大优化了单片机资源。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1