一种串行数据传输的方法

文档序号:6391665阅读:231来源:国知局
专利名称:一种串行数据传输的方法
技术领域
本发明涉及一种串行数据传输的方法,确切地说,涉及一种通过并行接口传输串行数据的方法。
背景技术
IIC总线、Microwire总线和SPI总线是几种应用比较广泛的串行总线技术,IIC总线是一种带有串行数据线(SDA)和串行时钟线(SCL)的总线;Microwire总线是一种带有串行时钟线(SCK)、串行数据输入线(DI)和串行数据输出线(DO)的总线;SPI总线是一种带有串行时钟线(SCK)、串行数据输入线(SI)和串行数据输出线(SO)的总线。这几种总线支持多种元器件,应用非常广泛,特别是在嵌入式系统中得到较多的使用。例如,大多数微控制器(MCU)都具有上述的一种或几种总线控制单元。然而,在一般的PC系统中,其标准外围接口却没有这几种总线接口,如果要在PC系统中外接具有这几种接口的器件,就需要在PC系统和器件之间增加接口转换卡来实现将PC系统的外围接口转换成上述几种总线接口,例如PC系统中的PCI接口、USB接口等,但是这种方法必然会增加设备的成本和系统的复杂性。

发明内容本发明目的在于提供一种通过并行接口传输串行数据的方法。
一种串行数据传输的方法,包括如下步骤(1)将并行接口的至少一个引脚与至少一种具有串行总线接口的器件的至少一个引脚相连;(2)所述并行接口的引脚产生操控所述具有串行总线接口器件的控制信号;(3)所述具有串行总线接口的器件根据所述控制信号向所述并行接口的引脚发送数据或者从所述并行接口的引脚接收数据。
所述具有串行总线接口的器件包括IIC总线接口器件、Microwire总线接口器件和SPI总线接口器件。
相较于现有技术,本发明一种串行数据传输的方法将并行接口的引脚和具有串行总线接口器件的引脚相连接,通过计算机并行接口的引脚输出可操控具有串行总线接口器件的控制信号,实现了对具有串行总线接口器件的操作,达到了不需增加接口转换卡就可实现通过并行接口传输串行数据的目的,降低了设备成本,同时还简化了整个系统,提高了系统的可靠性。

图1是本发明的并行接口和具有串行总线接口器件的连接示意图。
具体实施方式PC系统并行接口中有8根引脚与数据线相连,其对应关系如下表所示
PC系统并行口有三个8位的寄存器,分别为数据寄存器、控制寄存器和状态寄存器,这些寄存器与并行接口引脚的对应关系如下表所示
如果向数据寄存器的第N(N=0~7)位数据位写入数据值1,该数据位相应的数据线上就会输出高电平,如果写入的数据值为0,则输出低电平。例如,当向数据寄存器写入二进制值00010100后,数据线2和数据线4(即引脚4和引脚6)输出高电平,其他数据线则输出低电平,此外,也可通过读取数据寄存器的值来判断数据线引脚是高电平(值1)还是低电平(值0)。同理,通过向控制寄存器写入二进制值00000010/00000000,则可使引脚14输出高/低电平,通过向控制寄存器写入二进制值00001000/00000000,可使引脚17输出高/低电平。PC系统正是通过上述引脚与串行数据接口连接,利用软件编程以使并行接口的引脚产生符合串行数据总线标准的数据信号,从而实现利用并行接口传输串行数据。
请参阅图1所示,PC系统并行接口的数据线引脚2和引脚3分别与IIC总线的串行时钟(SCL)和串行数据线(SDA)相连接,通过计算机软件控制并行接口的引脚2和引脚3产生符合IIC总线协议的SDA和SCL信号,从而实现对具有IIC总线的元器件的操作和控制。
PC系统并行接口的数据引脚4,引脚5,引脚6分别和Microwire总线的时钟(SCK)、数据输入(DI)和数据输出(DO)线相连接,引脚14(/AUTOFEED)和Microwire器件的片选(CS)引脚相连接,通过计算机应用软件控制并行接口引脚14、引脚4、引脚5和引脚6产生符合Microwire总线协议的片选(CS)、时钟(SCK)、数据输入(DI)和数据输出(DO)信号,从而实现对具有Microwire总线的元器件的操作和控制。
PC系统并行接口的数据引脚7、引脚8和引脚9分别和SPI总线的时钟(SCK)、数据输入(SI)和数据输出(SO)相连接,引脚17(/SELECTIN)和SPI器件的片选(CS)引脚相连接,通过计算机应用软件控制并行接口引脚17、引脚7、引脚8和引脚9产生符合SPI总线协议的片选(CS)、时钟(SCK)、数据输入(SI)和数据输出(SO)信号,实现对具有SPI总线的元器件的操作和控制。
下面将分别描述利用并行接口产生IIC总线、Microwire总线和SPI总线相应的控制信号和数据比特位信号的方法,其中延迟时间可根据各总线的时序要求相应地延长或缩短。
IIC总线在传输数据过程中共有三种类型信号,它们分别是开始信号、结束信号和应答信号。其中,产生开始信号是SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。产生结束信号是SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。产生应答信号是接收数据的器件在接收到8比特数据后,向发送数据的器件发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,则判断为受控单元出现故障。
IIC总线的数据格式如下表所示
因此,利用并行接口实现在IIC总线上传输数据的方法包括如下步骤(1)并行接口产生数据传输的开始信号(即产生起始位),由此开始进行数据传送、(2)并行接口产生受控器地址,用来选择向哪个受控器传送数据或从哪个受控器接收数据;(3)并行接口产生读/写控制位,用于指示受控器的工作方式,0表示写,1表示读;(4)被主控器选中的受控器向主控器回传的应答信号(即应答位);(5)数据传送,并且每传送一个字节数据后,均产生一个应答信号(即应答位);(6)发送数据传输的结束信号(即产生停止位)。
其中步骤(1)并行接口产生数据传输的开始信号包括如下步骤将并行接口与SDA相连的引脚置为高电平,即置高SDA(向寄存器相对应的数据位写入值1);置高SCL;延迟一段时间;置低SDA;延迟一段时间;置低SCL;延迟一段时间。并行接口与SCL相连的引脚保持高电平(即向寄存器相对应的数据位写入值1),并行接口与SDA相连的引脚由高电平向低电平跳变(即将寄存器相对应的数据位的值由值1变为值0),从而产生开始信号(即产生起始位),开始传输数据。
步骤(2)和步骤(5)串行产生比特位为“0”、“1”的输入及输出信息。其中,串位输出比特位“0”步骤包括置低SDA;置高SCL;延迟一段时间;置低SCL;置高SDA;延迟一段时间。
串位输出比特位“1”步骤包括置高SDA;置高SCL;延迟一段时间;置低SCL;延迟一段时间。
串位输入比特位步骤包括置高SDA;置高SCL;读出SDA值;延迟一段时间;置低SCL;延迟一段时间。
执行步骤(4)和步骤(5)时,并行接口引脚根据步骤(3)中的读/写控制位的状态分别发送/接收低电平信号,从而产生应答信号(即应答位),表示已发送/接收数据。
步骤(6)数据传输的结束信号的发送包括如下步骤置低SDA;置高SCL;延迟一段时间;置高SDA;延迟一段时间;置低SCL;延迟一段时间。并行接口与SCL相连的引脚产生低电平,同时并行接口与SDA由低电平向高电平跳变,从而产生结束信号(即产生停止位),结束传送数据。
每个具有IIC总线接口的受控器件都有唯一固定的地址,当主控器发送数据时,IIC总线上挂接的受控器件都会将主控器发出的、位于起始信号后的8位地址信息与自己的地址进行比较,如果两者相同,则认为该受控器件被选中,然后按照读/写控制位规定的工作方式接收或发送数据。
通过并行接口引脚产生Microwire总线和SPI总线控制信号的方法与通过并行接口引脚产生IIC总线控制信号和数据比特位信号的方法基本相同,因此,此处只叙述控制信号和数据比特位信号的不同之处。
带Microwire总线的EEPROM器件AT93C46的数据读写指令如下表所示
其“读”数据操作包括如下步骤(1)串位输出开始位“1”;(2)串位输出操作码“10”;(3)串位输出地址位“A5~A0”;(4)串位读入伪比特位“0”;(5)串位读入数据位“D15~D0”。
其“写”数据操作包括如下步骤(1)串位输出开始位“1”;(2)串位输出操作码“01”;(3)串位输出地址位“A5~A0”;(4)串位输出数据位“D15~D0”。
其中,输出的比特位分别是“0”和“1”。
串位输出比特位“0”步骤包括同时置高CS、置低SCK、置低DI;延迟一段时间;同时置高CS、置高SCK、置低DI;延迟一段时间。
串位输出比特位“1”步骤包括同时置高CS、置低SCK、置高DI;延迟一段时间;同时置高CS、置高SCK、置高DI;延迟一段时间。
串位输入比特位步骤包括同时置高CS、置低SCK、置高DO;延迟一段时间;同时置高CS、置高SCK、置高DO;延迟一段时间;读出DO的值。
带SPI总线的EEPROM器件AT25020的数据读写指令如下表所示
其“读”数据操作包括如下步骤(1)串位输出指令格式位“0000A011”;(2)串位输出地址位“A7~A0”;(3)串位输入数据位“D7~D0”。
其“写”数据操作包括如下步骤(1)串位输出指令格式位“0000A010”;(2)串位输出地址位“A7~A0”;(3)串位输出数据位“D7~D0”。
其中,输出的比特位分别是“0”和“1”。
串位输出比特位“0”步骤包括同时置低CS、置低SCK、置低SI;延迟一段时间;同时置低CS、置高SCK、置低SI;延迟一段时间。
串位输出比特位“1”步骤包括同时置低CS、置低SCK、置高SI;延迟一段时间;同时置低CS、置高SCK、置高SI;延迟一段时间。
串位输入比特位步骤包括同时置低CS、置低SCK、置高SO;延迟一段时间;同时置低CS、置高SCK、置高SO;延迟一段时间;读出SO的值。
本发明一种串行数据传输的方法将并行接口的引脚和具有串行总线接口器件的引脚相连接,通过计算机并行接口的引脚输出可操控具有串行总线接口器件的控制信号,实现了对具有串行总线接口器件的操作,达到了不需增加接口转换卡就可实现通过并行接口传输串行数据的目的,降低了设备成本,同时还简化了整个系统,提高了系统的可靠性。
权利要求
1.一种串行数据传输的方法,包括如下步骤(1)将并行接口的至少一个引脚与至少一种具有串行总线接口的器件的至少一个引脚相连;(2)所述并行接口的引脚产生操控所述具有串行总线接口器件的控制信号;(3)所述具有串行总线接口的器件根据所述控制信号向所述并行接口的引脚发送数据或者从所述并行接口的引脚接收数据。
2.如权利要求1所述的一种串行数据传输的方法,其特征在于所述具有串行总线接口的器件包括IIC总线接口器件、Microwire总线接口器件和SPI总线接口器件。
全文摘要
一种串行数据传输的方法,包括如下步骤(1)将并行接口的至少一个引脚与至少一种具有串行总线接口的器件的至少一个引脚相连;(2)所述并行接口的引脚产生操控所述具有串行总线接口器件的控制信号;(3)所述具有串行总线接口的器件根据所述控制信号向所述并行接口的引脚发送数据或者从所述并行接口的引脚接收数据。
文档编号G06F13/40GK1704919SQ200410024620
公开日2005年12月7日 申请日期2004年5月25日 优先权日2004年5月25日
发明者莫皓然, 许金果 申请人:上海迪比特实业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1