一种控制单总线设备的方法及系统的制作方法

文档序号:6471033阅读:130来源:国知局

专利名称::一种控制单总线设备的方法及系统的制作方法
技术领域
:本发明涉及电子
技术领域
,特别是涉及控制单总线设备的方法及系统。
背景技术
:在功耗较大的单板设计中,通常利用温度传感器对高热器件或高热区进行监控,如果检测出的温度超过预设的阈值,则向管理单元报告,以便进行调节温度的操作。在现有的高级电信级计算机架构(AdvancedTelecomComputingArchitecture,ATCA)板卡设计中,温度传感器芯片采用达拉斯(Dallas)公司的单线数字温度传感器,并通过一款常用的8位单片机AT89C51的通用的输入/输出管脚(General-Purposeinput/output,GPIO)对温度传感器进行读写操作。参见图l所示,一个温度传感器需要连接一个GPIO,所以微程序控制器(MCU)必须提供较多的GPIO,以供实际需要时使用,因此占用硬件资源比较严重。由于一个温度传感器需要连接一个GPIO,所以MCU当需要向多个温度传感器传输命令时,必须重复生成多个命令,并分别通过各个GPIO传输给温度传感器,从而占用了较多的软件资源,以及重复生成多个命令的过程也消耗了一些时间和电能功耗。综上,现有技术对硬件资源、软件资源和电能功耗方面都有耗费的问题,对温度传感器的控制效率不高。
发明内容本发明实施例提供一种控制单总线设备的方法及系统,用于节省硬件资源和提高对单总线设备的控制效率。—种用于控制单总线设备的系统,包括MCU、电位控制装置、单总线和单总线设备;其中MCU的输出端与电位控制装置的接收端连接;MCU的接收端连接电位控制装置的输出端;MCU的接收端和电位控制装置的输出端还通过单总线连接单总线设备;电位控制装置,用于在MCU需要输出信号的情况下,通过单总线向单总线设备输出与MCU的输出端所输出的信号同为高电平或同为低电平的信号;在收到单总线设备通过单总线传输的信号的情况下,电位控制装置的输出端的电平与单总线传输的信号的电平相同,使MCU的接收端接收单总线传输的信号。—种控制单总线设备的方法,包括以下步骤主机发送ROM命令来通知需要操作的单总线设备将要对其进行操作;电位控制装置将ROM命令通过单总线发送给单总线设备;主机通过发送功能命令来对通知的单总线设备进行操作;电位控制装置将功能命令通过单总线发送给单总线设备;以及主机从单总线接收单总线设备发送的信号,其中,电位控制装置的输出端的电平与单总线传输的信号的电平相同。本发明实施例通过一根单总线将主机与单总线设备连接,节省了主机上的硬件资源。主机在对多个单总线设备操作时,不再需要轮询机制,可同时对多个单总线设备操作,简化操作过程。在电位控制装置的作用下,主机只需进行拉低电位的操作,若发送高电平信号,则释放单总线即可,从而简化操作过程,节省资源。图1为现有技术中系统的结构图;图2为本发明实施例中系统的主要结构图;图3为本发明实施例中系统的详细结构图;图4为本发明实施例中控制单总线设备的主要方法流程图;图5A为本发明实施例中初始化过程的方法流程图;图5B为本发明实施例中初始化过程的脉冲信号的示意图;图6为本发明实施例中搜索过程的方法流程图;图7为本发明实施例中搜索过程的示意图;图8为本发明实施例中读操作的方法流程图;图9为本发明实施例中读"0"时的脉冲信号的示意图;图10为本发明实施例中读"l"时的脉冲信号的示意图;图11为本发明实施例中写操作的方法流程图;图12为本发明实施例中写"0"时的脉冲信号的示意图;图13为本发明实施例中写"l"时的脉冲信号的示意图。具体实施例方式本发明实施例通过单总线将单总线设备与主机连接,一根单总线上可连接多个单总线设备,从而节省了主机上的硬件接口,利用电位控制装置来完成主机上的输入接口和输出接口到单总线的转换,并用来控制主机与单总线设备之间的脉冲信号传输。主机可以通过单总线向多个单总线设备传输脉冲信号。本发明实施例中的单总线设备是指具有单总线接口的设备,如温度传感器、电可编程只读存储器(ElectricallyProgrammableRead-0nlyMemory,EPR0M)等,不同类型的设备对操作时序的要求可以不同,下面以温度传感器为例进行说明。本发明实施例中的主机指MCU所在的设备。参见图2,本实施例中的控制系统包括MCU201、电位控制装置202、单总线203和单总线设备204。MCU201,包括通用异步收发器(UART),UART的发送信号端TXD连接电位控制装置202的输入端,UART的接收信号端RXD连接电位控制装置202的输出端,即连接在单总线上。MCU201用于向电位控制装置202输出对单总线设备204有效的有效信号,并通过单总线203接收单总线设备204输出的信号。其中,通过对UART配置不同的波特率可以输出不同脉宽的信号。电位控制装置202,其输入端连接MCU201,其输出端单总线203。电位控制装置202用于在MCU201需要输出信号的情况下,通过单总线203向单总线设备204输出与TXD所输出的信号同为高电平或同为低电平的信号;在收到单总线设备204通过单总线203发送的信号的情况下,受单总线203传输的信号的控制来屏蔽TXD所输出的高电平信号,使RXD接收单总线传输的信号。即,电位控制装置202用于在TXD上构造一个OD电路,隔离RXD和TXD,避免在RXD接收信号时TXD发送的高电平信号与单总线传输的信号发生冲突。本实施例中的单总线设备204可以有多个,根据实际需要可以进行分布式摆放(即放到单板的不同高热部位),并且均连接到单总线203上。单总线设备204工作在集电极开路(opendrain,OD)状态。由于大多数UART的TXD不是OD管脚,不能与RXD直接线与,因此需要一个外部OD电路。当用TXD发送信号的时候,应该忽略掉RXD收到的信号,这样就实现了双线到单线的转换。参见图3,本实施例中电位控制装置202(即0D电路)包括第一金属氧化物半导体(M0S)301、第二M0S302、第一电阻303和第二电阻304。第一M0S301的栅极用于接收UART发送的有效信号;第一M0S301的源极接低电平,其漏极连接第一电阻303的一端,第一电阻303的另一端接高电平。第二M0S302的栅极与第一M0S301中连接第一电阻303的一端相连;第二M0S302的源极接低电平,其漏极连接第二电阻304的一端,第二电阻304的另一端接高电平。第二M0S302中与第二电阻304连接的一端用于通过单总线203向单总线设备204输出有效信号或无效信号。本实施例中,图3所示的第一M0S301和第二M0S302为N沟道型,即在收到低电平信号时导通。当然,第一M0S301和第二M0S302也可以为P沟道型,即在收到高电平信号时导通,只要第一M0S301和第二M0S302的类型一致即可。第一电阻303和第二电阻304均为4.7KQ的上拉电阻。本实施例采用第一M0S301和第二M0S302实现了UART的输出信号到单总线信号的转换,并且通过MOS有效的控制了成本,以及使得电位控制装置202的内部结构简单,易于实现。通过以上描述清楚了主机与单总线设备204之间的连接关系,下面对主机与单总线设备204之间的信号传输过程进行介绍。参见图4,本实施例中控制单总线设备的主要方法流程如下步骤401:主机发送只读存储器(ReadOnlyMemory,ROM)命令来通知需要操作的单总线设备将要对其进行操作。步骤402:电位控制装置将ROM命令通过单总线发送给单总线设备。步骤403:主机通过发送功能命令来对通知的单总线设备进行操作。步骤404:电位控制装置将功能命令通过单总线发送给单总线设备。步骤405:主机从单总线接收单总线设备发送的信号,其中,电位控制装置的输出端的电平与单总线传输的信号的电平相同。本实施例中ROM命令包括搜索ROM[FOh](即主机发出的FOh的时序为"00001111")、读R0M[33h]、匹配R0M[55h]、跳跃ROM[CCh]等。功能命令包括读命令、写命令、转换温度命令、复制命令和回读命令等。若主机与单总线设备是首次建立连接,则在传输ROM命令之前,需要进行初始化过程;或者,为了避免误操作,主机在每次传输ROM命令之前,均进行初始化过程。下面主要针对初始化、读、写和搜索过程进行详细介绍。参见图5A,初始化过程的实现流程如下波特率采用9600bps,则每个比特用时104.2iis。步骤501:主机生成复位命令0xF0。步骤502:主机将0xF0置入内部UART的发送缓存中。步骤503:UART发送表示起始位和0xF0的复位脉冲。本实施例中对于单总线设备来说,不少于480iis的低电平信号为复位命令,起始位和OxFO(本实施例中低位在前)共有5位低电平信号,104.2iisX5=521iis,满足复位命令的要求。步骤504:单总线上的所有单总线设备检测到满足持续480ys的低电平时识别出复位命令,并进行复位操作。步骤505:主机释放单总线,由第一电阻将单总线的电位拉高,同时主机进行接收模式。步骤506:已复位的单总线设备检测到上升沿并在高电平满足持续1560iis的情况下,向主机返回应答脉冲。本实施例中单总线设备通过拉低单总线60240iis来实现应答脉冲。步骤507:主机检测到持续60240ys的低电平信号,确定单总线上有已复位的单总线设备。初始化过程的脉冲信号的传输情况参见图5B所示,其中GND表示地电平0V。主机进行复位操作后,在对某个单总线设备进行操作之前,需要知道单总线上是否有该单总线设备,此时主机发起搜索过程。参见图6,搜索过程的实现流程如下本实施例中单总线设备的标识采用全球唯一的64位ROM标识码。步骤601:主机发送搜索命令,即发送搜索R0M[F0h]。搜索命令主要分为两类,标准搜索命令用于搜索单总线上的所有单总线设备;报警搜索命令或附条件搜索命令用于搜索满足搜索条件的单总线设备,这种方式縮小了搜索范围,可以快速查找到所需要注意的器件。下面以标准搜索命令为例进行说明。步骤602:单总线上的所有复位的单总线设备在收到搜索命令后,发送ROM标识码的当前位,首次发送时发送第一位,本实施例中单总线设备先发送最低有效位(LeastSignificantBit,LSB)。单总线设备发送一个当前位后,下一位便为当前位。步骤603:主机接收单总线设备发送的当前位,即接收所有单总线设备发送的数据位的逻辑与(AND)。步骤604:主机通过发送脉冲信号指示复位的单总线设备进行下一步。步骤605:复位的单总线设备发送当前位的补码。参见表1,当前位与当前位的补码结合可能存在以下几种情况表1<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>步骤606:主机依据表1所示的前3种情况向复位的单总线设备发送一个指定位。若主机收到的脉冲信号是表1中所示的第4种情况,则结束流程。步骤607:单总线设备将收到的指定位与当前位进行匹配,若一致,则继续参与搜索过程,否则进入等待状态,直到收到复位命令。步骤608:主机通过发送脉冲信号指示所有单总线设备进行下一步,并重复步骤602-607,直到保留一个单总线设备未进入等待状态,则得到该未进入等待状态的单总线设备的ROM标识码。主机重复上述流程,通过调整指定位来搜索到所有的单总线设备。该搜索算法采用的是二叉树型结构,搜索过程沿各分支节点进行,直到找到单总线设备的ROM标识码,即找到叶子节点为止;后续的搜索操作沿着节点上的其它路径进行,按照同样的方式直到找到单总线上所有单总线设备的ROM标识码。搜索过程可参见图7所示的示意图。主机完成搜索过程后,便获知单总线上各单总线设备的ROM标识码,便于后续对特定的一个或多个单总线设备进行操作。参见图8,主机读单总线设备的数据的实现过程如下波特率采用115200bps,则每个比特用时8.7iis。步骤801:主机发送携带有ROM标识码的匹配R0M[55h],指示ROM标识码对应的单总线设备准备,即将对其进行操作。步骤802:主机发送读命令,并发起读时隙,即发送不少于1Ps的低电平信号以发起读时隙。本实施例中主机发送一位低电平信号8.7i!S,超过了li!S。一位电平信号的时长不宜设得过长,否则不便于灵活控制各命令,若设得过短,则可能需要较多的发送电平信号,浪费资源。步骤803:单总线设备向主机传输数据,包括起始位(Start)和一个数据位。步骤804:单总线设备在发送一个数据位后释放单总线,直到该读时隙结束。本实施例中每个读时隙的时长不少于60iis。本实施例中一个起始位、一个停止位(STOP)和8个数据位共10位,8.7iisX10=87iis,超过了60iis。单总线设备在传输一位"0"后释放单总线,可节省资源。步骤805:主机在起始位后且15iis内采样单总线状态,采样为高电平,则读到"1",采样为低电平,则读到"0"。主机接收到的是一个范围0xFE0x00,当单总线设备在LSB后释放总线,则主机接收到的值为0xFE,当单总线设备在最高有效位(MostSignificantBit,MSB)之后释放总线,则主机接收到的值为0x00,在两者之间释放总线则主机接收到的为0xFE和0x00之间的值。但主机采样LSB位即可。重复步骤803-805,单总线设备继续向主机传输数据,以完成读操作。单总线设备在传输一个字节数据后,主机再次执行步骤802,以便读下一字节数据。单总线设备在两次读时隙之间(即在传输两位数据之间)需要间隔不少于1Ps,本实施例中为8.7s。主机读"0"和读"1"过程的脉冲信号可分别参见图9和图IO所示。在进行读数据及读单总线设备204返回的信号的过程中,主机需要在输出寄存器中置入OxFF,使TXD持续发送高电平(即逻辑"l"),来避免与单总线传输的信号发生冲突。参见图ll,主机向单总线设备写数据的实现过程如下波特率采用115200bps,则每个比特用时8.7iis。步骤1101:主机发送携带有ROM标识码的匹配R0M[55h]。步骤1102:主机发送写命令,即发送不少于1Ps的低电平信号。步骤1103:主机将数据置入UART的发送缓存中,写"0"时置入0x00,写"1"时置入OxFF。步骤1104:主机传输一个写时隙,包括一个起始位、8个数据位和一个停止位。本实施例中每个写时隙的时长不少于60iis。本实施例中一个起始位和8个数据位共9位,8.7iisX9=78.3iis,超过了60iis。写"0"和"1"的脉冲信号可分别参见图12和图13所示。步骤1105:主机在停止位释放单总线。步骤1106:单总线设备采样单总线电平状态,若采样为高电平,则写入"l",若采样为低电平,则写入"O"。重复步骤1103-1106,主机继续向单总线设备传输数据,以完成写操作。主机在传输一个字节数据后,再次执行步骤1102,以便写下一字节数据。主机在两次写时隙之间需要间隔不少于lPs,本实施例中为8.7iis。主机在进行写操作前,需清空接收寄存器或先入先出(First-inFirst-out,FIFO)策略所对应内存,避免主机在向外写数据时收到自身发出的数据所引起的误操作。本实施例在读操作和写操作过程中均传输了起始位,该起始位是通知对端设备开始进行操作的标志。本发明实施例通过一根单总线将主机与单总线设备连接,节省了主机上的硬件资源。主机在对多个单总线设备操作时,不再需要轮询机制,可同时对多个单总线设备操作,简化操作过程。在电位控制装置的作用下,主机只需进行拉低电位的操作,若发送高电平信号,则释放单总线即可,从而简化操作过程,节省资源。并且,本实施例采用波特率控制每一位脉冲信号的时长,通过发送多位脉冲信号来实现各命令和数据的传输。而现有技术采用16比特(16-bit)处理器的GPIO模拟时序来控制发送给温度传感器的脉冲信号。即通过软件编程实现一个死循环,CPU不断的运行该死循环,利用CPU周期(cycles)进行时间计算,以便控制发送给温度传感器的脉冲信号。因此,每一bit基本都会耗费大量的CPUcycles,同时也增加了电能的损耗。由于依靠对CPUcycles计数来进行时间计算,所以当中断到来时,容易导致时序错乱,造成误操作。本实施例相对于现有技术可节省CPUcycles等软件资源和电能的损耗,提高对单总线设备的控制效率。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求一种单总线控制系统,其特征在于,包括微程序控制器MCU、电位控制装置、单总线和单总线设备;其中MCU的输出端与电位控制装置的接收端连接;MCU的接收端连接电位控制装置的输出端;MCU的接收端和电位控制装置的输出端还通过单总线连接单总线设备;电位控制装置,用于在MCU需要输出信号的情况下,通过单总线向单总线设备输出与MCU的输出端所输出的信号同为高电平或同为低电平的信号;在收到单总线设备通过单总线传输的信号的情况下,电位控制装置的输出端的电平与单总线传输的信号的电平相同,使MCU的接收端接收单总线传输的信号。2.如权利要求1所述的单总线控制系统,其特征在于,电位控制装置包括集电极开路电路。3.如权利要求2所述的单总线控制系统,其特征在于,所述电位控制装置包括第一金属氧化物半导体MOS、第二MOS、第一电阻和第二电阻;其中,第一MOS和第二MOS的类型相同;第一MOS的栅极用于接收UART发送的有效信号;第一MOS的源极接低电平,漏极连接第一电阻的一端,第一电阻的另一端接高电平;第二MOS的栅极与第一MOS中连接第一电阻的一端相连;第二MOS的源极接低电平,漏极连接第二电阻的一端,第二电阻的另一端接高电平;第二MOS中与第二电阻连接的一端用于通过单总线向单总线设备输出有效信号或无效信号。4.一种控制单总线设备的方法,其特征在于,包括以下步骤主机发送ROM命令来通知需要操作的单总线设备将要对其进行操作;电位控制装置将ROM命令通过单总线发送给单总线设备;主机通过发送功能命令来对通知的单总线设备进行操作;电位控制装置将功能命令通过单总线发送给单总线设备;以及主机从单总线接收单总线设备发送的信号,其中,电位控制装置的输出端的电平与单总线传输的信号的电平相同。5.如权利要求4所述的方法,其特征在于,主机发送R0M命令来通知需要操作的单总线设备将要对其进行操作的步骤包括主机在确定需要操作的单总线设备已经复位的情况下,通过发送包括需要操作的单总线设备的标识的匹配ROM命令,来通知需要操作的单总线设备将要对其进行操作;主机在未确定需要操作的单总线设备已经复位的情况下,通过发送搜索ROM命令确定需要操作的单总线设备已经复位;主机通过发送包括需要操作的单总线设备的标识的匹配ROM命令,来通知需要操作的单总线设备将要对其进行操作。6.如权利要求5所述的方法,其特征在于,还包括步骤收到匹配ROM命令的单总线设备中,发现匹配ROM命令携带的标识与自身标识不匹配的单总线设备,从复位状态转为等待状态。7.如权利要求4所述的方法,其特征在于,主机确定需要操作的单总线设备是否复位的步骤包括主机通过单总线传输复位脉冲,来通知单总线设备复位;主机通过单总线接收应答脉冲,来确定单总线上连接有单总线设备。8.如权利要求7所述的方法,其特征在于,传输复位脉冲和接收应答脉冲的步骤包括主机发送复位脉冲并释放单总线;单总线设备接收复位脉冲,并当主机释放单总线的时长在预设的时间范围内时,向主机发送应答脉冲。9.如权利要求4至8中任一项所述的方法,其特征在于,功能命令包括读命令、写命令、转换温度命令、复制命令和回读命令中的一项或多项。10.如权利要求9所述的方法,其特征在于,当功能命令为写命令时,主机通过在单总线上传输写命令对通知的单总线设备进行写操作后,先传输起始位,再传输数据位。11.如权利要求9所述的方法,其特征在于,当功能命令为读命令时,主机通过在单总线上传输读命令对通知的单总线设备进行读操作后,单总线设备先传输起始位,再传输数据位。12.如权利要求11所述的方法,其特征在于,单总线设备传输数据位的步骤包括发送一位有效位后释放单总线;主机读数据位的步骤包括主机通过检查有效位来确定读到的数据。13.如权利要求4所述的方法,其特征在于,主机在传输R0M命令和功能命令过程中,根据预设的波特率控制每一位脉冲信号的时长,通过发送多位脉冲信号实现ROM命令和功能命令的传输。14.如权利要求4所述的方法,其特征在于,所述单总线设备包括温度传感器。全文摘要本发明公开了一种单总线控制系统,用于节省硬件资源和提高对单总线设备的控制效率。所述系统包括MCU、电位控制装置、单总线和单总线设备;其中,MCU的输出端与电位控制装置的接收端连接;MCU的接收端连接电位控制装置的输出端;MCU和电位控制装置的输出端还通过单总线连接单总线设备;电位控制装置,用于在MCU需要输出信号的情况下,通过单总线向单总线设备输出与MCU的输出端所输出的信号同为高电平或同为低电平的信号;在收到单总线设备通过单总线传输的信号的情况下,电位控制装置的输出端的电平与单总线传输的信号的电平相同,使MCU的接收端接收单总线传输的信号。本发明还公开了一种通过所述系统实现的方法。文档编号G06F13/42GK101727422SQ20081022517公开日2010年6月9日申请日期2008年10月29日优先权日2008年10月29日发明者李钢申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1