CN103425614B - 用于单片机系统的同步串行数据发送装置及其方法 - Google Patents
用于单片机系统的同步串行数据发送装置及其方法 Download PDFInfo
- Publication number
- CN103425614B CN103425614B CN201210164664.2A CN201210164664A CN103425614B CN 103425614 B CN103425614 B CN 103425614B CN 201210164664 A CN201210164664 A CN 201210164664A CN 103425614 B CN103425614 B CN 103425614B
- Authority
- CN
- China
- Prior art keywords
- data
- chip microcomputer
- signal
- scm
- parallel
- 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.)
- Active
Links
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种用于单片机系统的同步串行数据发送装置,包括FIFO、时钟产生电路、并串转换电路以及时序控制电路;其中,外部的单片机系统通过数据总线将数据传输到所述的FIFO,而所述的FIFO通过又一数据总线将数据传输到所述的并串转换电路,由并串转换电路向外部发送串行数据信号;所述的时钟产生电路能够产生时钟信号,所述时钟信号能够被提供给所述的时序控制电路、并串转换电路,还能传输到外部;外部的单片机系统发出的启动信号被发送到所述的时序控制电路与并串转换电路,所述时序控制电路所生成的中断信号返回给单片机系统;所述的时序控制电路能够对所述FIFO以及并串转换电路进行控制,还能够向外部发送门控信号。
Description
技术领域
本发明涉及单片机系统,特别涉及一种用于单片机系统的同步串行数据发送装置。
背景技术
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),具有结构简单,使用方便,集成度高,控制功能强,可靠性高等特点,在工业控制领域有非常广泛的应用。现有技术中具有多种类型的单片机,这些单片机的结构总体上差别不大。以INTEL公司的MCS-51单片机为例,单片机主要包括CPU、4KB容量的ROM、128B容量的RAM、2个16位定时/计数器、4个8位并行口、全双工串口行口。
在嵌入式系统领域,同步串行数据接口是一种常用的数据发送与接收的接口,一般要用到门控信号、时钟信号和数据信号,门控信号用于指示发送数据的使能,时钟信号用于指示数据的位置。与异步串行通讯方式所不同的是,由于该接口所提供的信号里包含时钟信号(可由发送方或接收方提供)和门控信号,发送方与接收方事先不需要约定数据发送频率,比较灵活,一般也不需要起始位和停止位等辅助信号,因此数据率较高。
但一般的单片机,如应用最广泛的MCS-51单片机,只有一个全双工串行接口,且为异步串行通讯方式,虽然也可以通过设置单片机的控制寄存器将其设置为同步串行方式,但是只能提供一种固定的发送方式。总的来说,单片机的串口具有如下缺陷:
1、异步串口波特率低,一般为<1Mbps(如8031为<=256Kbps)
2、同步模式波特率固定,不灵活
3、没有收发缓冲,每收发一个字节都需要单片机处理,占用单片机的时间,或不能获得持续的最高速率。
单片机中串口所具有的上述缺陷影响了单片机以同步串行通讯方式的应用,限制了单片机的串口发送能力。
发明内容
本发明的目的在于现有单片机串口所存在的缺陷,从而提供一种用于单片机系统的同步串行数据发送装置。
为了实现上述目的,本发明提供了一种用于单片机系统的同步串行数据发送装置,包括FIFO、时钟产生电路、并串转换电路以及时序控制电路;其中,外部的单片机系统通过数据总线将数据传输到所述的FIFO,而所述的FIFO通过又一数据总线将数据传输到所述的并串转换电路,由并串转换电路向外部发送串行数据信号;所述的时钟产生电路能够产生时钟信号,所述时钟信号能够被提供给所述的时序控制电路、并串转换电路,还能传输到外部;外部的单片机系统发出的启动信号被发送到所述的时序控制电路与并串转换电路,所述时序控制电路所生成的中断信号返回给单片机系统;所述的时序控制电路能够对所述FIFO以及并串转换电路进行控制,还能够向外部发送门控信号。
上述技术方案中,所述的时序控制电路包括一个4bit同步计数器,一个12bit同步计数器以及锁存器;其中,所述4bit同步计数器用来进行模8计数,它通过对输入的时钟信号的上升沿进行计数,产生FIFO读信号、并串转换控制信号以及进位信号;所述的12bit同步计数器用来计数需要发送的一个数据包的字节长度,并产生进位信号;所述的锁存器用于生成门控信号以及计数器的复位信号。
上述技术方案中,所述的FIFO采用芯片IDT7203实现。
上述技术方案中,所述的时钟产生电路包括一晶振、4bit计数器以及反向器;其中,所述晶振的工作频率为4096KHz,所产生的时钟信号的频率为128KHz,所述4bit计数器为4bit同步2进制计数器74HC161,所述反向器为反向器74HC04。
上述技术方案中,所述的并串转换电路采用8bit同步串行移位寄存器74HC166实现。
本发明还提供了一种在所述的用于单片机系统的同步串行数据发送装置上实现的同步串行数据发送方法,包括:
步骤1)、外部的单片机系统设置外部中断方式;
步骤2)、将同步串行数据发送装置中的FIFO进行复位操作;
步骤3)、单片机系统将一包数据顺序写入FIFO中;其中,所述的一包是指一次顺序写入FIFO并在一个数据使能信号内顺序发送的一串数据,该一包数据为8位并行数据;
步骤4)、单片机系统将启动信号置低,以启动发送过程;
步骤5)、时序控制电路所产生的门控信号变低,指示开始发送数据;
步骤6)、并串转化电路按照时钟的节奏,从FIFO中顺序读入数据,进行并串转换后串行发送;其中,在顺序读入数据时,从数据包的第一个字节开始从高比特到低比特依次读取、发送;第一个字节发送完毕后,自动取第二个字节从高比特到低比特发送,一直到取完所有数据包数据发送完毕;
步骤7)、FIFO中的数据全部转换完成后,门控信号变为高电平,同时产生中断信号,以通知单片机发送完成,能够开始下一包的发送。
上述技术方案中,在所述的步骤3)之前,还包括:
通过设置12bit计数器的预置初值,从而确认所要做并串转换的数据包的长度。
本发明具有如下特点:
1、可根据需要灵活改变发送频率和数据包字节数
2、数据块的发送过程自动完成,对单片机资源的占用很少。
3、有发送缓冲,不依赖于单片机的处理速度,能获得持续的最高传输速率。
4、不需要起始位和停止位,传输效率高。
附图说明
图1为本发明的适用于单片机系统的同步串行数据发送装置的应用场景的示意图;
图2为一个实施例中本发明的同步串行数据发送装置的结构示意图;
图3为在一个实施例中的时钟产生电路的结构示意图;
图4为一个实施例中的时序控制电路的结构示意图;
图5为本发明的同步串行数据发送装置的工作流程图。
具体实施方式
现结合附图对本发明作进一步的描述。
在图1中示出了本发明的适用于单片机系统的同步串行数据发送装置的应用场景。如该图所示,该装置的数据输入端连接到外部的单片机系统,而其数据输出端则与外部的同步数据接收装置的数据接收端口连接。与这一同步串行数据发送装置有关的接口信号包括:
(1)、由单片机系统提供的启动信号,主要用来启动数据发送;
(2)、由单片机系统提供的8位数据总线,主要用来写入要发送的数据;
(3)、由同步串行数据发送装置产生的中断信号,主要用来通知单片机数据发送完成,可以进行下一包的数据发送;
(4)、由同步串行数据发送装置产生的门控信号,用来提供给同步数据接收装置以指示数据发送的使能,如低电平指示正在进行数据发送;
(5)、由同步串行数据发送装置产生的时钟信号,用来提供给同步数据接收装置以指示接收数据的同步,如下降沿数据变换,上升沿数据锁存;
(6)、由同步串行数据发送装置产生的数据信号,用来提供给同步数据接收装置数据输入。
在图2中示出了能够提供上述接口信号的同步串行数据发送装置的结构,该装置包括:FIFO(先进先出存储器)、时钟产生电路、并串转换电路以及时序控制电路。其中,外部的单片机系统通过数据总线将数据传输到所述的FIFO,而所述的FIFO通过又一数据总线将数据传输到并串转换电路,由并串转换电路向外部发送串行数据信号;所述的时钟产生电路能够产生时钟信号,所述时钟信号能够被提供给时序控制电路、并串转换电路,还能传输到外部;外部的单片机系统发出的启动信号被发送到所述的时序控制电路与并串转换电路,时序控制电路所生成的中断信号返回给单片机系统;所述的时序控制电路能够对FIFO以及并串转换电路进行控制,还能够向外部发送门控信号。
下面对该装置中的各个单元的组成做进一步说明。
所述的FIFO用于实现数据的存储。所述FIFO可采用现有技术实现,本实施例中,采用了芯片IDT7203。该芯片为存储深度为2KByte的异步先进先出存储器,FIFO的复位信号RESET和FIFO的数据写入信号WR完全由外部的单片机系统控制,在开始写入FIFO数据之前单片机系统最好先复位FIFO,以免出现误发送。所述的单片机系统提供8bit数据线和FIFO的写信号,FIFO的数据输出直接连到并串转换电路上,FIFO的读信号由时序控制电路产生。
所述的时钟产生电路用于对晶振产生的时钟进行分频、整形,最终形成同步用的时钟信号。在图3中给出了在一个实施例中的时钟产生电路的结构图,该电路包括一晶振、4bit计数器以及反向器,其中的晶振的工作频率为4096KHz,所产生的时钟信号的频率为128KHz,所述4bit计数器为4bit同步2进制计数器74HC161,所述反向器为反向器74HC04。在其他实施例中,所述晶振、计数器、反向器也可采用其他类型的部件。
所述的时序控制电路用于生成向外部传输的门控信号以及用于对FIFO、并串转换电路加以控制的控制信号。图4为一个实施例中的时序控制电路的示意图,该电路包括一个4bit同步计数器,一个12bit同步计数器(可由3个4bit同步计数器组成)以及锁存器。
在本实施例中,所述4bit同步计数器用来进行模8计数(1个字节的bit数),它通过对输入的时钟信号的上升沿进行计数,来产生对1个字节的8bit进行并串转换所需要的时序控制信号。该4bit计数器能对时钟信号进行从1到15之间进行计数,并可以复位和预置初值,因此,本实施例中使用计数器的进位信号和计数输出信号完成如下时序控制功能:
1、用Q2(该4bit计数器的第2位计数输出,它在模8计数过程中的后4个计数期间位高)的反信号作为FIFO的读信号,以便读取FIFO中一个字节,并传到并串转换器的并行输入端,为一次新的传输过程做好准备。
2、用进位信号的反向信号作为并串转换器的写信号,把从FIFO中读取的一个并行字节锁存到并串转换器,以开始1个新字节的串行发送。
3、用进位信号的反向信号对4bit的模8计数器的初值进行重新设置,以实现对1个字节的8bit的串行发送进行计数。
4、用进位信号对数据包计数器(即由3个4bit计数器级联获得的12bit计数器)进行触发计数,以实现总字节数的控制,即控制数据包长度。
12bit同步计数器用来计数需要发送的一个数据包的字节长度,需要强调的是,这里的一个数据包的长度是指被单片机一次写入FIFO的字节数(8bit/每字节),是需要在一个门控信号周期内连续发送的数据的个数。对于一个12bit计数器来说,计数的范围是1-4095,可根据需要改变计数器的位数,数据包的长度值为“4095-12bit同步计数器的预置初值”,假设数据包长度为1024,则计数器的预置初值为4095-1024=3091。此12bit同步计数器的作用是由单片机的启动信号控制开始计数数据包的字节长度,计数满后产生进位信号控制门控信号的结束。单片机启动发送过程后,计数开始,门控信号变低,指示数据包开始发送,此12bit同步计数器同样可产生进位信号,在进位信号有效时,控制门控信号回到高电平,指示发送过程结束。12bit同步计数器的预置初值可以接为固定电平,也可以由外部的单片机系统进行设置,这样在需要随时改变数据包长度的情况下,可以由单片机系统随时改变,非常灵活。12bit同步计数器的计数时钟来自4bit同步计数器的进位信号,12bit计数器的进位信号提供给锁存器,以触发门控信号的结束,该锁存器是具有复位/置位功能的D触发器。门控信号的产生过程如下:
1、门控信号起始的下降沿是由单片机对D触发器(即锁存器)直接写0实现的,它标示一个数据包的传输过程的开始。门控信号变低后,上述的所有时序电路开始工作,包括4bit的模8计数器和12it的数据包计数器。
2、12bit计数器的进位信号有效时,表明整个数据包发送完成,因此该进位信号的反向信号连接到D触发器的置位端,从而置位D触发器,产生门控信号的结束上升沿,以表示该数据包的传输过程结束。门控信号变高时,上述的所有时序电路停止工作,直至单片机启动下一次的传送过程。
所述的并串转换电路用于实现数据的并串转换。该电路采用8bit同步串行移位寄存器74HC166实现。它的转换控制信号来自时序控制电路中的4bit同步计数器(见前述),它能够产生数据信号。
下面结合图5对本发明的同步串行数据发送装置的工作流程进行说明。
步骤1)、外部的单片机系统设置外部中断方式。在本实施例中,所述外部中断方式为下降沿中断方式,但在其他实施例中,亦可采用上升沿中断方式。
步骤2)、将同步串行数据发送装置中的FIFO进行复位操作,将其可能存在的数据加以清除,以免造成误发送。
步骤3)、单片机系统将一包数据顺序写入FIFO中。所述的一包是指一次顺序写入FIFO并在一个数据使能信号内顺序发送的一串数据,该一包数据为8位并行数据。
步骤4)、单片机系统将启动信号置低,以启动发送过程。
步骤5)、时序控制电路所产生的门控信号变低,指示开始发送数据。此时所有时序电路开始工作,包括4bit的模8计数器和12it的数据包计数器。
步骤6)、并串转化电路按照时钟的节奏,从FIFO中顺序读入数据,进行并串转换后串行发送。在顺序读入数据时,从数据包的第一个字节开始从高比特到低比特依次读取、发送;第一个字节发送完毕后,自动取第二个字节从高比特到低比特发送,一直到取完所有数据包数据发送完毕。
步骤7)、FIFO中的数据全部转换完成后,门控信号变为高电平,表示发送完毕,同时产生中断信号,以通知单片机发送完成,可以开始下一包的发送。
在所述的步骤3)之前,还包括:通过设置12bit计数器的预置初值,从而确认所要做并串转换的数据包的长度。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (6)
1.一种用于单片机系统的同步串行数据发送装置,其特征在于,包括FIFO、时钟产生电路、并串转换电路以及时序控制电路;其中,外部的单片机系统通过数据总线将数据传输到所述的FIFO,而所述的FIFO通过又一数据总线将数据传输到所述的并串转换电路,由并串转换电路向外部发送串行数据信号;所述的时钟产生电路能够产生时钟信号,所述时钟信号能够被提供给所述的时序控制电路、并串转换电路,还能传输到外部;外部的单片机系统发出的启动信号被发送到所述的时序控制电路与并串转换电路,所述时序控制电路所生成的中断信号返回给单片机系统;所述的时序控制电路能够对所述FIFO以及并串转换电路进行控制,还能够向外部发送门控信号;其中,
所述的时序控制电路包括一个4bit同步计数器,一个12bit同步计数器以及锁存器;其中,所述4bit同步计数器用来进行模8计数,它通过对输入的时钟信号的上升沿进行计数,产生FIFO读信号、并串转换控制信号以及进位信号;所述的12bit同步计数器用来计数需要发送的一个数据包的字节长度,并产生进位信号;所述的锁存器用于生成门控信号以及计数器的复位信号。
2.根据权利要求1所述的用于单片机系统的同步串行数据发送装置,其特征在于,所述的FIFO采用芯片IDT7203实现。
3.根据权利要求1所述的用于单片机系统的同步串行数据发送装置,其特征在于,所述的时钟产生电路包括一晶振、4bit计数器以及反向器;其中,所述晶振的工作频率为4096KHz,所产生的时钟信号的频率为128KHz,所述4bit计数器为4bit同步2进制计数器74HC161,所述反向器为反向器74HC04。
4.根据权利要求1所述的用于单片机系统的同步串行数据发送装置,其特征在于,所述的并串转换电路采用8bit同步串行移位寄存器74HC166实现。
5.一种在权利要求1-4之一所述的用于单片机系统的同步串行数据发送装置上实现的同步串行数据发送方法,包括:
步骤1)、外部的单片机系统设置外部中断方式;
步骤2)、将同步串行数据发送装置中的FIFO进行复位操作;
步骤3)、单片机系统将一包数据顺序写入FIFO中;其中,所述的一包是指一次顺序写入FIFO并在一个数据使能信号内顺序发送的一串数据,该一包数据为8位并行数据;
步骤4)、单片机系统将启动信号置低,以启动发送过程;
步骤5)、时序控制电路所产生的门控信号变低,指示开始发送数据;
步骤6)、并串转化电路按照时钟的节奏,从FIFO中顺序读入数据,进行并串转换后串行发送;其中,在顺序读入数据时,从数据包的第一个字节开始从高比特到低比特依次读取、发送;第一个字节发送完毕后,自动取第二个字节从高比特到低比特发送,一直到取完所有数据包数据发送完毕;
步骤7)、FIFO中的数据全部转换完成后,门控信号变为高电平,同时产生中断信号,以通知单片机发送完成,能够开始下一包的发送。
6.根据权利要求5所述的同步串行数据发送方法,其特征在于,在所述的步骤3)之前,还包括:
通过设置12bit计数器的预置初值,从而确认所要做并串转换的数据包的长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210164664.2A CN103425614B (zh) | 2012-05-24 | 2012-05-24 | 用于单片机系统的同步串行数据发送装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210164664.2A CN103425614B (zh) | 2012-05-24 | 2012-05-24 | 用于单片机系统的同步串行数据发送装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103425614A CN103425614A (zh) | 2013-12-04 |
CN103425614B true CN103425614B (zh) | 2016-08-03 |
Family
ID=49650384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210164664.2A Active CN103425614B (zh) | 2012-05-24 | 2012-05-24 | 用于单片机系统的同步串行数据发送装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103425614B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105306068B (zh) * | 2015-10-30 | 2018-10-02 | 南京理工大学 | 一种基于时钟调相的并串转换电路 |
CN108121676B (zh) * | 2016-11-28 | 2020-09-11 | 上海贝岭股份有限公司 | 数字信号并行输入转串行输出电路 |
CN107608922B (zh) * | 2017-08-30 | 2019-10-22 | 西安空间无线电技术研究所 | 一种门控信号跨时钟域恢复方法 |
EP3809597A4 (en) | 2019-09-03 | 2021-08-18 | Shenzhen Goodix Technology Co., Ltd. | ASYNCHRONOUS SAMPLING ARCHITECTURE AND CHIP |
CN111142785B (zh) * | 2019-11-28 | 2023-05-09 | 北京遥测技术研究所 | 一种高速飞行器尾焰影响数据传输的处理方法和处理器 |
CN117312221B (zh) * | 2023-11-28 | 2024-03-15 | 西安现代控制技术研究所 | 一种触发式spi数据通讯方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1543130A (zh) * | 2003-04-30 | 2004-11-03 | 中兴通讯股份有限公司 | 远程监控数据的传输方法及其实施装置 |
CN2849835Y (zh) * | 2005-12-13 | 2006-12-20 | 四川川大智胜软件股份有限公司 | 利用通用微处理器实现同步通信数据收发的装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008049451A1 (en) * | 2006-10-27 | 2008-05-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Synchronising serial data signals |
-
2012
- 2012-05-24 CN CN201210164664.2A patent/CN103425614B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1543130A (zh) * | 2003-04-30 | 2004-11-03 | 中兴通讯股份有限公司 | 远程监控数据的传输方法及其实施装置 |
CN2849835Y (zh) * | 2005-12-13 | 2006-12-20 | 四川川大智胜软件股份有限公司 | 利用通用微处理器实现同步通信数据收发的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103425614A (zh) | 2013-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103425614B (zh) | 用于单片机系统的同步串行数据发送装置及其方法 | |
CN106874224B (zh) | 自动搬运且适应器件的多线SPI-Flash控制器 | |
CN202870808U (zh) | 一种spi串口模块的fpga实现装置 | |
CN104809094B (zh) | Spi控制器及其通信方法 | |
CN102023956B (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
CN102567261B (zh) | 增强型spi控制器、增强型spi的通讯系统及传送数据方法 | |
CN101551786B (zh) | 波特率自适应串行通信中继器的制作方法 | |
CN103064809B (zh) | 源同步双倍数据速率接口的采样装置及其采样方法 | |
CN113190291B (zh) | 一种基于片上网络数据采集的可配置协议转换系统及方法 | |
CN102999467A (zh) | 基于fpga实现的高速接口与低速接口转换电路及方法 | |
CN103746966A (zh) | 一种基于udp的上层协议与以太网mac层的数据传输方法 | |
CN102436207A (zh) | Spi总线扩展嵌入式plc的i/o模块 | |
CN105786741B (zh) | 一种soc高速低功耗总线及转换方法 | |
CN103107862B (zh) | 逻辑器件及其mdio数据发送方法 | |
CN102467581B (zh) | 超声数据采集芯片 | |
CN110572174B (zh) | 支持蓝牙ble协议的射频收发器及其控制方法 | |
CN101039323B (zh) | 多速率多协议比特流处理器 | |
CN108874720A (zh) | 一种高精度定时串口数据发送方法及系统 | |
CN103763063A (zh) | 不改变数据传输波特率而减少数据位宽的变速箱电路及工作方法 | |
CN116192624A (zh) | 通信接口的配置方法和通信接口 | |
CN108509365B (zh) | 一种dbi的数据传输方法及系统 | |
CN202735509U (zh) | 基于千兆网的雷达高速数据传输装置 | |
CN113051200A (zh) | 一种基于双路的数据采集并行数据传输及存储的装置及方法 | |
CN113626356B (zh) | 实现串行接口全双工通信的主机芯片的电路结构 | |
CN204990287U (zh) | 一种新型全双工通信模块 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100190 No. two south of Zhongguancun, Haidian District, Beijing 1 Patentee after: NATIONAL SPACE SCIENCE CENTER, CAS Address before: 100190 No. two south of Zhongguancun, Haidian District, Beijing 1 Patentee before: Space Science & Applied Research Centre, Chinese Academy of Sciences |