CN1440161A - 开放式单线异步串行通信总线 - Google Patents
开放式单线异步串行通信总线 Download PDFInfo
- Publication number
- CN1440161A CN1440161A CN 02114884 CN02114884A CN1440161A CN 1440161 A CN1440161 A CN 1440161A CN 02114884 CN02114884 CN 02114884 CN 02114884 A CN02114884 A CN 02114884A CN 1440161 A CN1440161 A CN 1440161A
- Authority
- CN
- China
- Prior art keywords
- node
- signal
- byte
- module
- data
- 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.)
- Pending
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
公开一种应用于家庭网络和分布式控制网络的开放式单线异步串行通信方法,该网络内的任何节点能通过一根信号线向其它节点传送数据,任何节点的加入和退出网络不需要整个网络的从新初始化。实现该通信方法的开放式单线通信模块主要由通信命令控制模块、字节读写模块、信号收发信机模块、一个8位移位寄存器以及ID位存储器组成。所有节点使用基本的传输比特率,但是两个节点之间可以协议使用更高的传输比特率。
Description
发明的技术领域
本发明涉及在一个通信***中的串行数据发送协议以及其实现技术,具体地说是涉及在一个家庭网络(Home Area Networks)或分布式控制网络中,所有的信息家电(Information Appliances)、个人电脑、控制器和致动器可以通过一根信号线实现异步串行通信的一种方法。
发明背景描述
数字化和网络化使得电器与电器之间,电器与人之间的信息交换正变成现实,分布在一个家庭中的数十个甚至数百个CPU以及其它集成电路可以构成家庭网络中的每一个节点。现有的家庭网络或者个人网络(Personal Area Networks)技术主要包括:无线技术(例如蓝牙、HomeRF,以及无线以太网IEEE 802.11b),利用旧线技术(例如电话线、电源线)和铺设新线技术(例如IEEE1394、通用串行总线USB2.0和以太网等)。利用电源线上网的标准目前是HomePNA 2.0,对象主要是家用电器,它的优点虽然是不用铺设新线,但存在着电源线噪音干扰大以及设备(HomePNA 2.0调制解调器)昂贵的缺点。在铺设新线技术中,IEEE1394和USB2.0是以多媒体数字产品为主要对象,基本上以个人电脑或USB主控制器为中心,连接各种数字产品,采用主-副(Master-Slave)的网络拓扑结构,即***里只能有一个主装置,其它是被动的副装置;数据传输速度高(IEEE1394可达3.2Gbps,USB2.0可达480Mbps),因此传输电缆不能太长,距离长的要增加集线器(Hub);以太网是比较成熟的技术,因为信号需要编码解码,硬件要求较高。这些技术适合那些要求有比较高传输波特率的信息家电,但是目前的硬件费用都比较高。
还有另外两种经济的铺设新线技术应用于家庭网络和分布式控制网络之中:一种是荷兰飞利浦公司利用I2C总线扩展成的I2C管道总线(Access Bus),这是一种多线串行通讯总线,至少包括信号线(SDA)、时钟线(SCL)和地线,为防止电容耦合,SDA和SCL线不适合存在同一条双绞线中。I2C管道总线最初设计目的是代替RS-232来连接电脑周边设备;另外一种是美国专利号为5210846的美国达拉斯半导体公司的单线总线结构,达拉斯公司的单线总线存在着比特率低和网络结构单一化的缺点,单线总线采用主-副的网络拓扑结构,较适合用一个主装置来监控多路传感器(例湿度计、温度计、风向仪等)的场合。
发明摘要
本发明的目的是提供一种经济实用,能通过一根信号线连接成家庭网络或分布式控制网络,采用对等(Peer to Peer)网络拓扑结构的异步串行通信方法。主要针对对象是需要连接到网络的各种电器,各种控制器或传感器,非高速多媒体数字产品,这些称为节点,但不适合高速视频多媒体产品。采用的对等网络拓扑结构,使每一个联接到家庭网络或分布式控制网络的节点都能作为主装置,即每个节点可以主动地与另外的节点交换数据。每个节点能“一插即用”(Plug and Play),节点的加入和退出不需要整个网络的从新初始化,因此本发明是开发式的局部网络技术。该网络***由两部分组成:节点和连接节点间的开放式单线总线。开放式单线总线实际上由一根信号线和一根地线组成,可以用带屏蔽的音响线或视频线,也可以用电话双绞线或扁平电缆,但不限于所举例子;实现开放式单线协议的节点通常具有能完成协议操作的CPU,或其它集成电路,例如专用集成电路(ASIC),现场可编程门阵列(FPGA),复杂可编程逻辑器件(CPLD),以及信号驱动电路。每个节点拥有一个独一的标识符(ID),标识符在节点最初加入网络时取得。
一般地,如果节点需要电源供应,还可以在开放式单线总线里增加一根电源线为节点供电。
附图说明
通过参照如下附图,本领域技术人员可以清楚地理解本发明所阐述的开放式单线总线结构特征及其优点。附图中:
图1描述开放式单线信号线上存在的基本信号波形;
图2描述通过一根信号线执行开放式单线串行通信的模块示意图;
图3描述通信命令控制模块发送命令流程图;
图4描述通信命令控制模块接收命令流程图;
图5描述在字节读写模块内控制字节读写的状态机;
图6描述在信号收发信机内控制起始信号和字节同步与确认信号的写,逻辑1,0读写的状态机;
图7描述在信号收发信机内追踪起始信号和字节同步与确认信号的状态机;
图8描述节点信号输入和输出电路;
详细描述
根据本发明,开放式单线总线上的信号线在无信号状态下总处于高电平,有信号时,信号线上存在着四种基本信号波形:起始信号STR,字节同步与确认信号ACK,逻辑1,和逻辑0信号,由这四种信号将组成所有的命令和数据信息。参照图1,显示了开放式单线总线上的四个基本信号波形图。时钟10是发送方节点通信模块内的协调时钟,用来协调控制四个基本信号的输出和接收。通常,信号线上无信号输出时,每一个通信模块都把信号线拉到高电平H,当某个通信模块写脉冲‘0’时,则将信号线拉到低电平L,写脉冲‘1’时,则让信号线保持在高电平。每个通信模块要求发言之前,它都要观察到信号线已在高电平上停持了一段预定的时间,才能发出起始信号STR,这段预定时间通常应该超过传输一个字节的时间。每个通信模块的协调时钟在通信时将具有相同的频率,但是都或多或少的不同步,因此根据本发明,每个通信模块在传输一个字节数据之前都要求发出一个字节同步与确认信号ACK,以便接收方节点在观察到ACK波形结束后的第二个协调时钟周期开始读一个字节的数据,因此在传输一个字节数据之前的单线总线不总处于高电平。信号ACK同时还作为接收方确认信号,例如,根据本发明,在开放式单线上的点对点数据交换中,要求接收方在收到一个字节数据后回应一个信号ACK,表示已收到对方的数据。
在本发明的优选实施例中,信号STR是五个位为“00110”的脉冲序列(时序20),信号ACK是四个位为“0100”的脉冲序列(时序30),逻辑1是三个位为“111”的脉冲序列(时序40),而逻辑0是三个位为“000”的脉冲序列(时序50)。信号STR与无信号状态下的5个协调时钟周期的高电平序列(即“11111”),和ACK信号与无信号状态下的4个协调时钟周期的高电平序列(即“1111”)的汉明距离(Hamming Distance)d均为3(有3个位不一致),令t是可以纠正的错误位数,编码学里一般地认为d 2t+1,所以t=1,即信号STR和信号ACK上任一位出现错误,它们都能与全高电平区分开来,因而仍然能被辨认出来。同样地,逻辑1与逻辑0的汉明距离为3,它们即使有一位出现错误,都能与对方区分开来。逻辑1与逻辑0是重复码(Repetition Code),有比较好的位纠错能力,虽然存在着降低传输比特率的缺点。
时钟60是接收方节点通信模块内的协调时钟。时钟10和时钟60分处在不同的硅芯片上,因此都或多或少的不同步。时钟60是接收方节点用来协调读取信号的时钟,当该节点在下次写信号时,时钟60就是该节点的时钟10,因此应当清楚,一个节点的通信模块只有一个协调时钟。由于时钟10和时钟60都不需要在开放式单线上传播,因此可以减少电磁辐射。
参照图2,显示了根据本发明的一个优选实施例,通过一根信号线执行开放式单线通信的模块示意图。开放式单线实际上由两根线组成,一根是地线70,一根是信号线80,地线提供参考低电平。开放式单线通信模块90主要由信号收发信机模块100、字节读写模块110、通信命令控制模块120、一个8位移位寄存器,以及一个ID位存储器等组成。信号收发信机负责对基本信号的读写控制,是开放式单线通信模块中的最低层,可以是信息家电中使用的专用集成电路(ASIC)或可编程逻辑器件(FPGA,CPLD等)的一个信号收发信机模块,也可以是信息家电中使用的微处理器(CPU)的一个具有数据输入输出的控制块,例如通用异步收发信机(UART)。字节读写模块是开放式单线通信模块中的中间层,接收来自通信命令控制模块的控制命令,负责对字节读写的控制,对信号收发信机发送四种基本信号的读写命令。移位寄存器连接在信号收发信机和字节读写模块之间,实现了并行与串行信号的双向转换,当字节读写模块读字节时,信号收发信机将读取到的一位逻辑信息暂存于移位寄存器的最低位(第1位),移位寄存器随后左移一位,字节读写模块则从移位寄存器上读取字节;而当字节读写模块写字节时,它先把字节数据写入移位寄存器,信号收发信机读取移位寄存器最高位(第8位),移位寄存器随后左移一位。通信命令控制模块,是开放式单线通信模块中的最高层,负责对通信命令的接收和发送,对字节读写模块发送字节读写命令或信号ACK,信号STR的写命令。ID位存储器用来储存节点在线记录,当节点收到某标识符对应节点的确认信号后,节点的ID位存储器的相应位将记为‘1’,否则记为‘0’,而节点在需要时可以从ID位存储器上查找记录。
在通信命令控制模块中,通信命令通常包括四种基本命令:新节点加入命令、数据广播命令、点对点数据传送命令和标识符查询命令;节点(包括加入新节点)必须等信号线保持在高电平一段预定时间后才能发送通信命令,在发送通信命令之前必须先发送出一个起始信号STR;命令由一个字节表示,因此可以有256个不同的命令,不过在本发明的优选实施例中只用了四种基本命令;跟在命令后面的是该节点的标识符(新节点除外),每个标识符ID可以由一个字节构成,ID被用于寻址和识别,因此存在着256个不同的节点地址,但本发明不限于此,在信号驱动能力足够大的许可下,可以扩展标识符的位数,从而扩充开放式单线总线上节点的数量;每个节点在发送一个字节ID或者数据之前,都必须先发送一个字节同步与确认信号波形,而接受方节点在观察到一个字节同步与确认信号波形后的第二个协调时钟周期开始读这个字节的数据。
图3显示了发送方节点的通信命令控制模块发送通信命令的流程图。在开始后的步骤2,节点被要求预先观察到单线信号线已处在高电平上有一段预定的时间T1,例如等于24个协调时钟的宽度(写一个字节的时钟宽度),如果有通信命令要执行,在步骤4发送一个STR起始信号,在步骤5发送相应的通信命令字节。根据不同的通信命令进入不同的流程分支。
如果是新节点加入网络命令,在步骤7发送ID查询数目n,在步骤8设起始发送标识符ID为“00000001”,在本发明优选实施例中,ID被定义为一个字节字长;发送字节完毕后,总线自动回复到高电平。在步骤10,如果总线在一段预定时间T2内有信号ACK确认,则把一个n位的ID位存储器相应位记录为‘1’,表示此ID的节点已在线上,无信号ACK确认,则把此ID作为自己的ID;在步骤15,ID递增1,一直到达ID最大数目才退出,这样做可使新节点查遍所有的标识符ID,因此可知道什么ID号码的节点已在线上,什么ID号码没有节点,什么节点已经断电或者离开信号线,任何断电或者离开信号线的节点在下次再加入时,要求从新执行加入网络命令。
如果是广播数据命令,则在步骤17发送自己的ID,在步骤18发送数据字节数目,在本发明的优选实施例中,字节总数不应超过256个,因此节点在一次通信命令内只能在单线信号线上广播小于等于256个字节的数据组,这样可以防止太长的一串数据掉失,也可以防止某一个节点占据信号线太长的时间。通信命令控制模块从数据储存器中读取发送数据,重复步骤19,20直到数据传送完毕为止。优选地,数据组以一个数据头开始,数据头通常包括操作命令、询问命令、开始或结束使用非基本传输比特率命令,广播的数据头命令还可以包括要求各节点重新启动,或某一节点在离开前,通知各个节点等。跟在数据头后面的数据包括测量值、控制值、控制参数,或者其它显示信息等。数据头可以由一个以上的字节组成,本发明建议将数据组的处理放在建立在开放式单线通信模块之上的高级模块里执行。
如果是点对点发送数据命令,一般地,节点往往要先检查自己的ID位存储器,以确定接收方在线的情况下才发出此命令。在步骤22,发送接收方的ID,在收到信号ACK回应以确信该ID的节点在线情况下,流程继续进入步骤25发送自己的ID,然后节点通信模块要在一段预定时间内T2(例如等于6个基本时钟宽度)收到字节同步与确认信号ACK。根据本发明,在点对点的数据发送后,接收方要求发出一个字节同步与确认信号ACK,由于接收方节点要在T2时间内发送字节同步与确认信号,而发送方要在时间T2后才发第二个字节的字节同步与确认信号,因此双方节点将不会混淆这两个信号ACK的含义。在步骤28发送数据字节数目,同样优选地,字节数不超过256个。重复步骤31至34直到数据发送完毕。在点对点发送数据命令过程中,如果在任一次的预定时间T2内收不到信号ACK,该命令在步骤35作失败处理,并返回到开始状态。但是本发明不限于此,在无信号ACK确认情况下,节点通信模块可以重复发送几次才退出,在重复的数据之前则用连续2个信号ACK作字节同步信号以加区别,防止接收方已回复确认信号,但因噪音在信号线上丢失,因而避免重复读取数据。
点对点发送的数据头可以是具体的命令,例如一个作为节点的中央控制器可以给在家庭网络的另一地方的家用电器(例如:加热器、空调器等)发送启动信号;或者一台空调器给房间另一头的传感器发送要求回复温度值、湿度值的命令,回复数据将作为空调器下一步操作的参考。
如果是节点ID查询命令,则进入步骤37,当ID发出后,如果有信号ACK回应,则把ID位存储器上相应的位记为‘1’,否则记为‘0’。如果需要,这个命令可以在点对点数据传送之前使用。
图4显示了接收方节点通信命令控制模块接收通信命令的流程图。在开始后的步骤44,节点观察到信号线上的信号STR,该信号表示网络上某个节点要求发言。如果收到信号ACK,在步骤45接收到发送方通信命令,通信命令控制模块将根据各通信命令进入不同的流程分支。
如果接收到的通信命令是新节点加入网络命令,则先在步骤47收到ID查询数目,在步骤48读取查询的ID,如果是自己的ID,则在步骤50发出确认信号ACK,表示自己在开发式单线总线上,如果不是自己的ID,则转到步骤51等待其它节点的确认信号,如果在时间T2内有信号ACK回应,则把ID位存储器上相应的位记为‘1’,表示此ID值有对应的节点在总线上。如果无信号ACK回应则把相对应位记为‘0’。重复步骤48~52,直到所有ID被查询完毕。
如果接收到的通信命令是数据广播命令,则在步骤56把接收到的数据存入数据存储器。
如果接收到的通信命令是点对点数据发送命令,则进入步骤59,如果接收到的ID是自己的ID,则继续在步骤62接收对方的ID,在步骤66接收数据,等接收到数据后,每读到一个字节的内容要在信号线上发出确认信号ACK,表示已收到该数据。如果接收到的ID不是自己的ID,则退出到开始状态。
如果接收到的命令是ID查询命令,节点在收到ID后判断是否自己的ID号码,如果是,则发出确认信号ACK。
在图4显示通信命令控制模块的接收命令流程中,如果接收方节点在一段预定时间T2内未收到字节同步与确认信号ACK,则作命令中断处理,然后退回到开始状态。
根据本发明,通信命令控制模块在流程中将通过对字节读写模块发送字节读写和信号ACK、信号STR的写命令来实现通信命令的发送和接收。根据本发明,数据以字节为传输单位,因此在字节读写模块内将优选地建立一个状态机来控制字节的读写,同时该状态机还负责对信号收发信机发送信号ACK和信号STR的写控制。该状态机由至少比传输比特率快三倍的基本时钟来协调,同时要求两个通信的节点使用相同的协调时钟频率。图5显示了该状态机,该状态机的下一个状态将由当前状态的操作、来自通信命令控制模块的控制命令,和来自信号收发信机的输入信号来决定。该状态机在每一个状态周期期间检查它的命令与信号输入事件,在下一个协调时钟上升沿时改变成下一状态。下表中列出改变状态的条件描述:
下表列出该状态机的7种可能状态描述:
改变状态的条件 | 描述 | 备注 |
NOP | 不做什么 | |
STR | 发信号STR | 通信命令控制模块的控制命令 |
ACK | 发信号ACK | 通信命令控制模块的控制命令 |
RDB | 读字节 | 通信命令控制模块的控制命令 |
WRB | 写字节 | 通信命令控制模块的控制命令 |
SILEN | 信号线在T2时间内停留在高电平 | 来自信号收发信机的输入信号 |
RACK | 收到字节同步与确认信号 | 来自信号收发信机的输入信号 |
UFR | 没读到第8位 | 当前状态的操作 |
UFW | 没写到第8位 | 当前状态的操作 |
FR | 读完第8位 | 当前状态的操作 |
FW | 写完第8位 | 当前状态的操作 |
EX | 不管什么 |
状态 | 状态描述 | 该状态下发给信号收发信机的命令 |
idle | 空闲状态 | 不做什么 |
str | 写信号STR状态 | 发信号STR |
ack | 写信号ACK状态 | 发信号ACK |
rd1 | 读字节状态1 | 不发命令,等待字节同步信号ACK |
rd2 | 读字节状态2 | 读逻辑信息 |
wr1 | 写字节状态1 | 发信号ACK |
wr2 | 写字节状态2 | 写逻辑(1或0) |
根据本发明的优选实施例,在信号收发信机内将建立一个状态机来控制起始信号STR,字节同步与确认信号ACK的写和逻辑1,0的读写。该状态机与字节读写模块内状态机使用相同的协调时钟来协调。图6显示了该状态机,状态机的下一个状态由当前状态和来自字节读写模块的控制命令来决定。该状态机在每一个状态周期期间检查它的控制命令输入,在下一个协调时钟上升沿来临时改变成下一状态。下表中列出来自字节读写模块的控制命令的描述:
该状态机的16种可能状态描述:
字节读写模块的控制命令 | 控制命令描述 |
NOP | 不做什么 |
ST | 发信号STR |
AC | 发信号ACK |
RD | 读逻辑信息 |
WR | 写逻辑(1或0) |
EX | 不管输入的命令 |
状态 | 状态描述 | 该状态下具体操作 |
idle | 空闲状态 | 不做什么 |
st1 | 写信号STR的第一个周期 | 在信号线上写脉冲‘0’ |
st2 | 写信号STR的第二个周期 | 在信号线上写脉冲‘0’ |
st3 | 写信号STR的第三个周期 | 在信号线上写脉冲‘1’ |
st4 | 写信号STR的第四个周期 | 在信号线上写脉冲‘1’ |
st5 | 写信号STR的第五个周期 | 在信号线上写脉冲‘0’ |
ack1 | 写信号ACK的第一个周期 | 在信号线上写脉冲‘0’ |
ack2 | 写信号ACK的第二个周期 | 在信号线上写脉冲‘1’ |
ack3 | 写信号ACK的第三个周期 | 在信号线上写脉冲‘0’ |
ack4 | 写信号ACK的第四个周期 | 在信号线上写脉冲‘0’ |
rd1 | 逻辑读的第一个周期 | 读信号线当前电平 |
rd2 | 逻辑读的第二个周期 | 读信号线当前电平 |
rd3 | 逻辑读的第三个周期 | 读信号线当前电平 |
wr1 | 逻辑写的第一个周期 | 在信号线上写脉冲‘0’(逻辑0时)或写脉冲‘1’(逻辑1时) |
wr2 | 逻辑写的第二个周期 | 在信号线上写脉冲‘0’(逻辑0时)或写脉冲‘1’(逻辑1时) |
wr3 | 逻辑写的第三个周期 | 在信号线上写脉冲‘0’(逻辑0时)或写脉冲‘1’(逻辑1时) |
如果信号收发信机在某个协调时钟周期内对信号线上写脉冲‘1’,则保持高电平,如果对信号线上写脉冲‘0’,则拉低电平。
如图6所示,状态机在idle状态或者在命令操作的最后状态下才接收新的操作命令。在状态st1后,状态机连续执行到st5完成一个写信号STR的命令,在st5状态,如果收到AC命令,则进入ack1状态。同样道理,在进入rd1和wr1状态后,都是连续执行一个完整的逻辑读或写命令后才接受其它命令。NOP表示不需要什么操作的命令。
根据本发明的优选实施例,在信号收发信机内建立另外一个状态机来追踪信号STR和信号ACK的发生。图7显示了该状态机,该状态机的下一个状态由当前状态以及当前状态下的事件来决定。同样地,该状态机在每一个状态周期期间检查发生的事件,在下一个协调时钟上升沿时改变成下一状态。下表列出各事件的描述:
状态机的14种可能状态描述:
事件 | 事件描述 |
HL | 信号线由高电平转为低电平 |
E0 | 信号线为低电平 |
E1 | 信号线为高电平 |
EX | 不管什么电平 |
状态 | 状态描述 | 该状态下的操作 |
idle | 空闲状态 | 读当前信号线电平 |
ACK | 接收到信号ACK | 通知模块有信号ACK |
STR | 接收到信号STR | 通知模块有信号STR |
n1~n11 | 追踪ACK或STR信号 | 读当前信号线电平 |
如图7所示,在idle状态下,当信号线发生由高电平转为低电平的事件HL,表示一个信号ACK或者信号STR的可能出现,因此下一状态转为n1状态。该状态机在每一个状态周期期间检查信号线的逻辑电平,通过观测到正确的脉冲序列而读取来自信号线上的信号STR或信号ACK。但是本发明不限于此,该状态机还可以修改成能辨认发生一位脉冲错误的STR或ACK信号,如前面所述,根据本发明,信号STR序列与无信号状态下的5个协调时钟周期的高电平序列(即“11111”),和ACK信号序列与无信号状态下的4个协调时钟周期的高电平序列(即“1111”)的汉明距离d均为3,因此STR和信号ACK序列上任一位接收到错误电平,都能被分辨出来,例如,“01110”与“00110”的汉明距离比“01110”与“11111”的汉明距离更近,因此“01110”被辨认是信号STR而非无信号的高电平。
图8显示了实现开放式单线通信的节点信号输入输出电路的优选实施例。有两个分开的节点130和140在该***中显示出来。当所有节点没有输出时,表明单线信号线处于高电平状态,因此,每个节点的信号输出端可以通过一个上拉电阻(图中Ra、Rb)连接一个CMOS/TTL电源电压(例如5v),将信号线电平拉到高电平。因为节点信号收发信机的输出不能影响输入Rx,因此节点的输出电路有一个三态非门,信号收发信机的反向输出连接三态非门的控制端,当信号收发信机正在接收信号输入时,其输出Tx转为高电平,三态非门的输出将变为高阻状态,通过三态非门的高阻状态来阻断该节点输出对输入的影响。
比较长的信号线以及线上的节点存在着对地电容,其中较长信号线电容Cs比节点对地电容(图中C1、C2)要大,但是如果节点数目很多,则总的节点电容将增大。当节点输出端写逻辑0而拉低信号线电平时,这个过程可看作是所有电容的放电过程,此时三态非门的输出要尽可能快地吸纳电容负荷的电流和下拉电流;而当节点输出端写逻辑1时,单线电平将被拉高,这个过程可看作是电容的充电过程,令R为并联上拉电阻,C为电容之和(所有导线电容与节点对地电容之和),则时间常数RC制约着电平的转换速率(slew rate),即RC时间必须小于电平转换时间,因此R或C都不能太大。
综上所述,影响开放式单线总线传输比特率的因素主要包括:总线所选择的电缆、电缆的长度、总线上所挂节点的数目,和节点信号输出电路中三态非门的吸纳电流(Iol)或下降电流(Sinking Current)。如果电缆很长,节点数目很多,则要牺牲传输比特率。
电缆的选择很重要,本发明建议在普通情况下(总线长小于50m)可以选择非屏蔽电话双绞线(Category 3),较长情况下选用等级5双绞线(Category 5),或者平行扁平电缆,信号线更长情况下优选IEEE1394(Fire Wire)电缆。一般地,电话双绞线电容约为65pF/m,平行扁平电缆为50pF/m。例如,当输出电路使用两个三态非门(Iol=40mA)时,设下拉电流为20mA,则总的并联电阻应该为R=5V/20 mA=250 ohms,假设总线上有n个上拉电阻,则每个上拉电阻的阻值Ri=R/n=250/n ohms。假设传输比特率为100Kbps,转换时间为1微秒(μs),则单线总线可带电容负荷不应大于4000pF,使用非屏蔽双绞线Cate3,可传输至约60米长距离。因为本发明的开放式单线总线没有象I2C总线那样需要传输同步时钟,因此没有象I2C两条电缆(SLC,SDA)之间那样存在着电磁相互干涉的现象(特别是高速比特率时),开放式单线信号因此可以传播更长的距离。
连接节点输入端Rx和输出端Tx的可以是微处理器上面的通用串行收发信机(UART)的两个端号:Rx,Tx,如果开放式单线通信模块是FPGA或CPLD的一块功能模块,则Rx,Tx可以是逻辑器件上面的两个输入和输出端口。本领域的技术人员还可以通过电平转换,利用RS-232的串行信号输出输入端口进行开放式单线通信。
根据本发明,各节点加入开放式单线网络是自由的,因此存在着一个问题:随着节点数目的增加,并联上拉电阻会随着并联电阻数目的增加而减少,因而电缆电容放电时间会延长,单线由高电平拉至低电平的时间会加长,而电容充电时间却会缩短。因此本发明建议,不是每一个节点都需要带上拉电阻,特别是相隔较近的节点可以共用一个上拉电阻;而在电缆线较长,节点数目较多,传输比特率大于100Kbps情况下,节点应该并联多个或者使用有较大吸纳电流(Iol)的三态非门。根据本发明的一个实施例,选用美国国家半导体公司的DM74LS125A芯片,该芯片含四个三态非门,每个Iol电流最大达24mA。
考虑到各个节点需要使用相同的协调时钟频率才能通信,因此本发明优选地规定了一个基本的50KHz的协调时钟频率,节点需要与所有节点通信时要求将使用这个基本的协调时钟频率来控制发送通信命令,例如加入网络命令、广播数据命令和ID查询命令,而每个节点在空闲状态下要求使用50KHz的协调时钟频率来追踪发言起始信号STR。许多节点还需要其它的传输比特率,因此它们可以在50KHz的协调时钟频率时使用点对点通信命令协议双方下一次的通信频率。例如,某节点可以利用点对点通信命令给另外一个节点发送3个字节的数据组,数据组以一个数据头开始,第一个字节的数据头被定义为新协调时钟频率的开始命令,第二、第三个字节数据被定义为以1KHz为单位的协调时钟频率数,在这个通信命令结束后,双方节点将使用新的通信协调时钟频率通话,当通信结束后,节点再用点对点通信命令给对方节点发送数据,第一个字节数据头是结束目前通信协调时钟频率的命令。
如前面所述,如果使用较高的传输比特率,要求接收和发送方节点必须具有较大的下拉电平吸纳电流。本发明建议只用50KHz协调时钟或比特率小于16Kbps的节点使用一个三态非门(Iol=20mA)连接信号线,而比特率高于100Kbps的节点要使用更大吸纳电流的输出电路。本发明不限制具体的输出电路设计。
应当理解,开放式单线协议除了可以应用到家庭网络外,还可以应用到分布式控制网络***中,例如中央空调的分布式控制,各房间控制器可以通过开放式单线与中央控制器联系,既可避免星型网络分布所带来的复杂控制线路,又可以在一定范围内轻易地加入新的控制节点而不需要更改全部控制线路。还可以应用到果菜园的农业监控***中,只需一根信号线、一根地线和一根电源线,可以最低限度地减少线路分布,而且图像信号和温、湿度测量数值信号可以通过不同的比特率传输。
与美国达拉斯半导体公司的一线协议相比,开放式单线协议使用中继器(Repeater)就可以扩展网络电缆到更长的距离;也因为开放式单线使用对等(Peer to Peer)的网络拓扑结构,每个节点均作为主装置,相比一线协议的一个主装置可以使网络有更多的用途;开放式单线上的不同节点在50KHz的基本时钟频率基础上,可以灵活地协议使用更高的传输比特率,而一线协议只有一种传输比特率。与荷兰飞利浦公司的I2C管道总线相比,开放式单线只有一根信号线,消除了信号线与时钟线之间的电磁干涉现象,还可以减少电缆的分布量,另外,I2C总线也只限定了两种传输比特率:100Kbps及400Kbps,因而开放式单线协议可以应用到更广泛的场合。
本领域的技术人员可以在不脱离本发明的原理和精神基础上作许多修改,而本发明说明书中所公开的例子是示范性和非限制性的,本发明的范围由所附权利要求书来限定。
Claims (10)
1.一种应用于家庭网络和分布式控制网络的异步串行通信方法,其特征包括:
节点通过一根信号线实现开放式单线通信,所有节点都能主动地向其它节点传送数据,任何节点的加入和退出网络不需要整个网络的从新初始化。
2.如权利要求1所述的节点,其特征是所有节点都有一个独一的标识符,该标识符在节点最初加入开放式单线网络时取得,标识符被用于寻址和识别。
3.如权利要求1所述的信号线,其特征是在无信号状态下,信号线总处于高电平,在有信号状态下,信号线上存在着四种基本的脉冲信号波形:起始信号STR、字节同步与确认信号ACK、逻辑1信号和逻辑0信号。
4.如权利要求1所述的开放式单线通信,其特征是实现该通信方法的开放式单线通信模块主要由最高层的通信命令控制模块、中间层的字节读写模块、最低层的信号收发信机模块、一个连接在信号收发信机和字节读写模块之间的8位移位寄存器,以及一个ID位存储器组成。
5.如权利要求4所述的通信命令控制模块,其特征是所控制的通信命令包括:新节点加入命令、数据广播命令、点对点数据传送命令和标识符查询命令;在发送通信命令之前,通信命令控制模块必须先发送一个起始信号STR。
6.如权利要求5所述的数据广播命令和点对点数据传送命令,其特征是发送方节点发送的一组数据以一个数据头开始;在点对点数据传送命令流程中,接受方节点在接受到一个字节数据后,必须发一个字节同步与确认信号ACK作确认。
7.如权利要求4所述的字节读写模块,其特征是由一个状态机来实现字节读写的控制,和对信号收发信机发送控制命令,该状态机由至少比传输的比特率快三倍的时钟来协调,并且要求两个对话的节点使用相同的协调时钟频率,状态机的下一个状态将由当前状态的操作、来自通信命令控制模块的控制命令和来自信号收发信机的输入信号来决定。
8.如权利要求4所述的字节读写模块,其特征是每一个字节在发送之前,必须先发送一个字节同步与确认信号ACK,接收方节点在观察到信号ACK后的第二个时钟周期开始读这个字节的信息。
9.如权利要求4所述的信号收发信机模块,其特征是由一个状态机来实现对起始信号STR、字节同步与确认信号ACK的写和逻辑1、逻辑0信号的读写控制,该状态机使用与权利要求7所述的相同时钟来协调,该状态机的下一个状态由当前状态以及来自字节读写模块的控制命令来决定;由另外一个状态机来追踪信号线上起始信号STR、字节同步与确认信号ACK的发生,该状态机使用与权利要求7所述的相同时钟来协调,该状态机的下一个状态由当前状态以及当前状态下的事件来决定。
10.如权利要求1所述的方法,其特征是节点在需要与所有节点通信时使用一个预先约定的基本时钟频率来协调开放式单线通信模块的工作,而每个节点在空闲状态时也使用该基本时钟频率来追踪起始信号STR;节点还可以通过点对点数据传送命令,与另外的节点协议使用更高的协调时钟频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02114884 CN1440161A (zh) | 2002-02-21 | 2002-02-21 | 开放式单线异步串行通信总线 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02114884 CN1440161A (zh) | 2002-02-21 | 2002-02-21 | 开放式单线异步串行通信总线 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1440161A true CN1440161A (zh) | 2003-09-03 |
Family
ID=27793363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02114884 Pending CN1440161A (zh) | 2002-02-21 | 2002-02-21 | 开放式单线异步串行通信总线 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1440161A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1893404B (zh) * | 2005-07-01 | 2010-09-08 | 海尔集团公司 | 串行通讯的方法及其接口电路 |
CN102739364A (zh) * | 2012-06-29 | 2012-10-17 | 罗小华 | 单工异步串行通讯编解码方法 |
CN102790657A (zh) * | 2012-06-29 | 2012-11-21 | 罗小华 | 一种单工异步串行通讯编解码方法 |
CN103402286A (zh) * | 2013-07-10 | 2013-11-20 | 杭州华三通信技术有限公司 | 一种指示灯控制方法和fpga |
CN105740718A (zh) * | 2014-11-26 | 2016-07-06 | 纬创资通股份有限公司 | 电子***、电子装置及电子装置的存取认证方法 |
CN111221769A (zh) * | 2019-12-28 | 2020-06-02 | 江苏科大亨芯半导体技术有限公司 | 单线读写通讯方法 |
CN113970951A (zh) * | 2020-07-22 | 2022-01-25 | 爱思开海力士有限公司 | 时钟分布网络、使用其的半导体装置以及半导体*** |
CN115827535A (zh) * | 2022-11-07 | 2023-03-21 | 珠海东之尼电子科技有限公司 | 一种单线同步双向通讯的控制方法、装置和存储介质 |
-
2002
- 2002-02-21 CN CN 02114884 patent/CN1440161A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1893404B (zh) * | 2005-07-01 | 2010-09-08 | 海尔集团公司 | 串行通讯的方法及其接口电路 |
CN102739364A (zh) * | 2012-06-29 | 2012-10-17 | 罗小华 | 单工异步串行通讯编解码方法 |
CN102790657A (zh) * | 2012-06-29 | 2012-11-21 | 罗小华 | 一种单工异步串行通讯编解码方法 |
CN103402286A (zh) * | 2013-07-10 | 2013-11-20 | 杭州华三通信技术有限公司 | 一种指示灯控制方法和fpga |
CN103402286B (zh) * | 2013-07-10 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种指示灯控制方法和fpga |
CN105740718A (zh) * | 2014-11-26 | 2016-07-06 | 纬创资通股份有限公司 | 电子***、电子装置及电子装置的存取认证方法 |
CN111221769A (zh) * | 2019-12-28 | 2020-06-02 | 江苏科大亨芯半导体技术有限公司 | 单线读写通讯方法 |
CN111221769B (zh) * | 2019-12-28 | 2023-08-29 | 江苏科大亨芯半导体技术有限公司 | 单线读写通讯方法 |
CN113970951A (zh) * | 2020-07-22 | 2022-01-25 | 爱思开海力士有限公司 | 时钟分布网络、使用其的半导体装置以及半导体*** |
CN113970951B (zh) * | 2020-07-22 | 2023-10-03 | 爱思开海力士有限公司 | 时钟分布网络、使用其的半导体装置以及半导体*** |
CN115827535A (zh) * | 2022-11-07 | 2023-03-21 | 珠海东之尼电子科技有限公司 | 一种单线同步双向通讯的控制方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101911000B (zh) | 用于连接电子装置的控制总线 | |
CN101067804B (zh) | 一种高速可配置扩展spi总线及其工作方法 | |
CN102326363B (zh) | 具有使用缓冲器描述表的控制器区域网络模块的微控制器 | |
CN1223152C (zh) | 智能家庭控制总线 | |
US8493991B2 (en) | Serial bus transmission system | |
CN1799242A (zh) | 家庭网络*** | |
CN207266039U (zh) | 一种单线防冲突竞争式总线网络 | |
US20100064083A1 (en) | Communications device without passive pullup components | |
CN1440161A (zh) | 开放式单线异步串行通信总线 | |
CN101399654A (zh) | 一种串行通信方法和装置 | |
CN102685037B (zh) | 网关设备 | |
CN102619501A (zh) | 一种石油测井仪中的数据传输*** | |
CN105320624B (zh) | 采用数据输入输出管理控制的电子装置 | |
CN102193888B (zh) | 数据传输***与可编程串行***设备接口控制器 | |
CN106788566A (zh) | 基于以太网物理层芯片速率连续可变的收发器及传输方法 | |
CN103997448B (zh) | 基于物理层芯片进行传输模式的自动配置方法和*** | |
CN101106504A (zh) | 基于can总线的智能自主机器人分布式通信*** | |
CN201060487Y (zh) | 一种高速可配置扩展spi总线 | |
CN102692642A (zh) | 基于以太网物理层收发器的地震数据传输装置 | |
CN101295283A (zh) | 总线装置及其数据传输方法 | |
CN102347830A (zh) | 以太网同步方法和*** | |
CN101146088A (zh) | 一种数据总线结构及应用该结构的数据传输方法 | |
CN108614795A (zh) | 一种usb数据传输的数字实现方法 | |
CN206461608U (zh) | 基于以太网物理层芯片速率连续可变的收发器 | |
CN105045740A (zh) | 用于通信接口的转换方法和电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C57 | Notification of unclear or unknown address | ||
DD01 | Delivery of document by public notice |
Addressee: Huang Qingwen Document name: Notice of publication of application for patent for invention |
|
C57 | Notification of unclear or unknown address | ||
DD01 | Delivery of document by public notice |
Addressee: Huang Yilin Document name: Deemed as a notice of withdrawal |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |