CN102420877A - 一种多模式高速智能异步串口通信模块及实现方法 - Google Patents
一种多模式高速智能异步串口通信模块及实现方法 Download PDFInfo
- Publication number
- CN102420877A CN102420877A CN2011103925532A CN201110392553A CN102420877A CN 102420877 A CN102420877 A CN 102420877A CN 2011103925532 A CN2011103925532 A CN 2011103925532A CN 201110392553 A CN201110392553 A CN 201110392553A CN 102420877 A CN102420877 A CN 102420877A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- cpu
- frame
- receiving
- 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.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims abstract description 21
- 102100029368 Cytochrome P450 2C18 Human genes 0.000 claims abstract description 19
- 101000919360 Homo sapiens Cytochrome P450 2C18 Proteins 0.000 claims abstract description 19
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 230000009977 dual effect Effects 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 238000013461 design Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 4
- 230000008054 signal transmission Effects 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims description 2
- 238000002955 isolation Methods 0.000 abstract description 2
- 230000003139 buffering effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Landscapes
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种多模式高速智能异步串口通信模块及实现方法,其所基于的硬件架构是CPCI总线模块,该模块硬件包括可编程逻辑单元、大容量存储单元、通用异步收发控制器、高速数字隔离器件和接口电平转换器件等。其优点是(1)可根据用户实际需要通过软件选择智能模式和非智能模式。(2)工作于智能模式时,可通过软件灵活设置各串口的数据帧格式。(3)工作于智能模式时,模块接收数据时将根据设定的数据帧格式自动判断数据帧头、数据长度、校验和、帧尾等信息。
Description
技术领域
本发明属于通信接口技术领域,具体来说是基于硬件逻辑实现多模式高速智能异步串口通信的方法。
背景技术
串口通信以其简单、可靠性高和编程容易等特点在系统控制和数据通信中一直占有重要的地位,它不仅没有因为时代的进步而淘汰,反而在规格上越来越完善,应用也越来越广泛。
但由于串口通信的特点:通用异步收发控制器与上位机(CPU)的数据交换是按字节收发的,即通用异步收发控制器收到1个字节的报文就给CPU发出一个中断信号告知CPU来取数据,由CPU对数据的正确性(报文头尾标识,校验和等)进行判断并处理,因此串口收发数据越快,其单位时间内向CPU申请的中断就越多。在一般系统中,CPU往往还要处理网络数据,作图形显示和处理等,这样就严重影响了CPU的处理能力,因此也成为串口通信速率的瓶颈。
利用我们多年来在计算机通信接口领域的成果与经验,自主设计开发的基于硬件逻辑实现的多模式高速智能异步串口通信模块可以通过软件设置工作于智能模式(通过板上微处理器对数据进行判别处理,只把符合要求的数据发送给CPU)和非智能模式(传统串口通信模式,不对数据作处理,收到数据就传送给CPU,由CPU来对数据进行解析),并支持多种串口通信协议标准,可以在不占用CPU资源的情况下提高串口通信速度,能够满足不同领域用户对异步串口通信的要求。
发明内容
本发明目的是提供一种多模式高速智能异步串口通信模块及实现方法,以满足不同控制系统和数据通信的要求。
本发明的硬件架构是基于CPCI总线的智能异步串口通信模块,该模块硬件包括可编程逻辑单元、大容量存储单元、通用异步收发控制器、高速数字隔离器件和接口电平转换器件。所述的可编程逻辑单元通过CPCI总线与CPU连接,并向CPU提交数据和接收CPU的下发数据;所述的大容量存储单元通过RAM接口与所述的可编程逻辑单元连接,进行接收数据的暂存处理;所述的通用异步收发控制器通过局部总线与所述的可编程逻辑单元连接,进行通信数据的收发处理;所述的高速数字隔离器件两端分别与所述的通用异步收发控制器和所述的接口电平转换器件连接,进行通信信号的传输;所述的接口电平转换器件一端与外设通过RS232/RS485/RS422接口连接,另一端与所述的高速数字隔离器件连接,进行通信信号的逻辑电平转换和传输。
所述的可编程逻辑单元是本发明的核心组成部分,其内部集成了嵌入式微处器及由Verilog硬件描述语言设计的各种功能模块,主要实现本板与CPU的数据交换,与通用异步收发控制器的数据交换以及本板所有逻辑控制。所述的Verilog硬件描述语言设计的各种功能模块包括模式选择寄存器、接口选择寄存器、串口数据收发模块、数据帧接收识别模块、数据搬移模块和CPCI转局部总线模块等。
a. 所述的模式选择寄存器可通过写入不同的值实现本板智能模式与非智能模式的选择。
b. 所述的接口选择寄存器可通过写入不同的值实现本板各串口的接口标准(RS232,RS422,RS485等)选择。
c. 所述的串口数据收发模块在接收时首先判断通用异步收发控制器接收缓冲区是否有数据,若有,则取出一个字节数据并将其送往数据帧识别模块;在发送时判断发送标志位看通用异步收发控制器是否允许发送,若允许发送则将FIFO中要发送的数据写入通用异步收发控制器发送寄存器,等待发送。
d. 所述的数据帧接收识别模块可设置各串口的数据帧鉴别格式,它们只接收符合各自设定的数据帧格式的数据,而剔除掉不符合自己的数据帧格式的数据。
e. 所述的数据搬移模块在接收时负责将接收FIFO中的数据搬移到大容量存储单元中暂存,并查询双口RAM是否处于可写状态且剩余存储空间是否大于数据帧的大小,若满足要求,又将暂存于所述大容量存储单元内的帧数据搬移到双口RAM内,并向CPU发出中断请求;在发送时,接收到CPU的发送中断请求后,将要发送的数据从双口RAM快速转移到内部FIFO,并通知串口数据收发模块将数据发送出去。
f. 所述的CPCI转局部总线模块主要将CPCI总线转换为本板使用的局部总线,以实现CPU与本板的数据交换。
本发明一种多模式高速智能异步串口通信模块的实现方法,包括设备初始化设置、智能模式下数据收发处理和非智能模式下数据收发处理。
(1)所述的设备初始化设置包括以下内容:
a. 接口标准设置:RS232、RS422或RS485。
b. 串口工作模式设置:智能模式或非智能模式。
c. 若工作为所述的智能模式,则进行数据帧格式设置,包括:报文头、报文尾等。
d. 串口参数设置:包括波特率、数据位(5~8位)、校验位(奇校验、偶校验或无校验位)、停止位(1位、1.5位或2位)等。
(2)所述的智能模式相对于CPU来说为数据帧传输模式,其数据的接收流程如附图3所示,包括以下步骤:
步骤101:远方设备将数据流发送到某个串口,所述的接口电平转换器将IEA232/IEA485/IEA422通信的电气信号转换为TTL信号,经过所述的高速数字隔离器传输到所述的通用异步收发控制器,进入步骤102;
步骤102:可编程逻辑单元内的串口数据收发模块定时查看所述通用异步收发控制器各串口的接收寄存器是否有数据,若有,则进入步骤103;
步骤103:串口数据收发模块读出接收寄存器内的字节数据,并将该字节数据送往数据帧识别模块,进入步骤104;
步骤104:数据帧识别模块根据初始化设置的数据帧格式对收到的字节数据进行判别,若数据符合数据帧格式要求,则进入步骤105;若不符合,则进入步骤106,丢掉该字节数据并将之前收到的此帧其他数据从接收FIFO中清空,重新回到步骤102;
步骤105:将数据存入可编程逻辑单元内部相应串口的接收FIFO内,并进入步骤107;
步骤107:判断所述的FIFO内是否为完整的一帧数据,若是,则进入步骤108;
步骤108:将该帧数据存入所述的大容量存储单元内,进入步骤109;
步骤109:数据搬移模块判断可编程逻辑单元内为该串口开设的双口RAM区是否处于可写状态且剩余存储空间是否大于数据帧的大小,若是,则进入步骤110。若判断为否,则数据继续存在大容量存储单元内;
步骤110:数据搬移模块将数据从大容量存储单元内转移到双口RAM内并向CPU发出一个硬件中断请求,进入步骤111;
步骤111:CPU收到中断请求后,通过CPCI转局部总线模块将此帧数据读入CPU内存。
至此,一个完整的数据帧接收过程就结束了。
其数据的发送流程如附图4所示,包括以下步骤:
步骤201:CPU将要发送的一帧数据通过CPCI转局部总线模块写入某串口双口RAM区,并给数据搬移模块送出一个发送中断请求,进入步骤202;
步骤202:数据搬移模块收到中断请求信号后将该帧数据从双口RAM内快速搬移到该串口发送FIFO区,进入步骤203;
步骤203:可编程逻辑单元内的串口数据收发模块查询通用异步收发控制器对应串口是否为允许发送状态,若是,则进入步骤204;
步骤204:串口数据收发模块读出FIFO中一个字节数据,将其写入通用异步收发控制器发送寄存器,进入步骤205;
步骤205:通用异步收发控制器将数据转化为串行数据后经高速数字隔离器件和接口电平转换器件发送给外设,进入步骤206;
步骤206:重复步骤203~步骤205,直到该帧数据全部发送完。
至此,一个完整的数据帧发送过程就结束了。
(2)所述的非智能模式为常规的串口通信模式,即CPU通过CPCI总线直接与通用异步收发控制器以字节为单位交互数据,此时所述的可编程逻辑单元内部只有CPCI转局部总线模块工作,其余单元均不参加工作。其数据的接收流程如附图5所示,包括以下步骤:
步骤301:远方设备将数据流发送到某个串口,所述的接口电平转换器将IEA232/IEA485/IEA422通信的电气信号转换为TTL信号,经过所述的高速数字隔离器传输到所述的通用异步收发控制器,进入步骤302;
步骤302:所述的通用异步收发控制器收到一字节数据后将其存入接收寄存器内并向CPU发出一个硬件中断请求,进入步骤303;
步骤303:CPU收到中断请求后通过CPCI转局部总线模块读出该字节数据,进入步骤304;
步骤304:CPU判断数据是否符合报文格式要求,若符合,则进入步骤305;若不符合,则进入步骤306,丢掉该字节数据并将之前收到的此帧其他数据从内存中清空,并返回步骤303;
步骤305:CPU将该字节数据写入内存,进入步骤307;
步骤307:重复步骤301~步骤306,直到该帧数据接收完成。
至此,一个完整的数据帧接收过程就结束了。
其数据的发送流程如附图6所示,包括以下步骤:
步骤401:CPU首先查看通用异步收发控制器相应串口是否处于允许发送状态,若允许发送,则进入步骤402;
步骤402:CPU将要发送的1个字节数据写入通用异步收发控制器发送寄存器,进入步骤403;
步骤403:通用异步收发控制器将数据转化为串行数据后经高速数字隔离器件和接口电平转换器件发送给外设,进入步骤404;
步骤404:重复步骤401~步骤403,直到该帧数据全部发送完。
至此,一个完整的数据帧发送过程就结束了。
本发明一种多模式高速智能异步串口通信模块及实现方法的优点是:
(1)可根据用户实际需要通过软件选择智能模式和非智能模式;
(2)工作于智能模式时,可通过软件灵活设置各串口的数据帧格式;
(3)工作于智能模式时,模块接收数据时将根据设定的数据帧格式自动判断数据帧头、数据长度、校验和、帧尾等信息,如果有符合所设定帧格式的数据,则将数据放入缓冲区并通知CPU;模块发送数据时,CPU将完整的一帧数据放入缓冲区并通知板上微处理器将数据发送出去。采用这种模式时,CPU不再直接与通用异步收发控制器以字节为单位传输数据,而是与板上微处理器通信,因此传输速率得到了大大提高,CPU的利用率也得到了提高;
(4)工作于智能模式时,由于接收的数据会暂存于所述的外部大容量存储单元内,因此可通过配置大容量存储单元的大小来达到在对串口数据实时性要求不高的系统中,接收N帧数据后再向CPU发送中断或者由CPU在系统空闲时来自动查询串口数据的要求,只要接收缓冲区大小满足要求,就不会出现丢数据的现象。
因此,采用本发明方案可以满足不同领域用户对异步串口通信的需求。
附图说明
图1是本发明所基于的硬件原理框图。
图2是本发明提供的可编程逻辑单元内部逻辑框图。
图3是本发明智能模式下的数据帧接收流程图。
图4是本发明智能模式下的数据帧发送流程图。
图5是本发明非智能模式下的数据帧接收流程图。
图6是本发明非智能模式下的数据帧发送流程图。
具体实施方式
下面结合附图对本发明进行详细说明。
如附图1所示,本发明所基于的硬件架构是CPCI总线模块,该模块硬件包括可编程逻辑单元、大容量存储单元、通用异步收发控制器、高速数字隔离器件和接口电平转换器件等。
所述的可编程逻辑单元是Altera公司的EP3C40或Xilinx公司的XC5VLX30等,主要实现本板与CPU的数据交换,与通用异步收发控制器的数据交换以及本板所有逻辑控制。
所述的大容量存储单元是Samsung公司的K4S511632E 或Hynix公司的HY57V561620等,其作为所述的可编程逻辑单元的扩展存储区,主要为各路串口提供可配置的大容量接收缓冲区,以满足不同系统对数据吞吐量的要求。
所述的通用异步收发控制器是EXAR公司的ST16C554或TI公司的TL16C754B等,主要实现所述的接口电平转换器件与所述的可编程逻辑单元之间的串←→并数据转换,以及控制数据传输速率等功能。
所述的高速数字隔离器件是TI公司的ISO7221或AD公司的ADuM5241等,主要实现所述的通用异步收发控制器与所述的接口电平转换器件之间的电气隔离,以保护所述的通用异步收发控制器及内部系统不会因为极端情况下出现的外部瞬态高电压而损坏。
所述的接口电平转换器件是Sipex公司的SP526、Maxim公司的MAX3088或AD公司的AD7306JRZ等,主要实现外部传输的RS232/RS422/RS485电气信号与通用异步收发控制器能识别的TTL信号之间的电平和逻辑关系的变换。
如附图2所示,本发明的核心单元为可编程逻辑单元,其内部集成了嵌入式微处理器及由Verilog硬件描述语言自主设计的各种功能模块,包括模式选择寄存器、接口选择寄存器、串口数据收发模块、数据帧接收识别模块、数据搬移模块和CPCI转局部总线模块等,其主要实现本板与CPU的数据交换,与通用异步收发控制器的数据交换以及本板所有逻辑控制。各功能模块的说明如下:
(1)模式选择寄存器,可通过对模式寄存器写入不同的值实现本板智能模式与非智能模式的选择;
(2)接口选择寄存器,可通过对接口选择寄存器写入不同的值实现本板各串口的接口标准(RS232,RS422,RS485等)选择;
(3)串口数据收发模块,串口数据收发模块在接收时首先判断通用异步收发控制器接收缓冲区是否有数据,若有,则取出一个字节数据并将其送往数据帧识别模块;在发送时判断发送标志位看通用异步收发控制器是否允许发送,若允许发送则将FIFO中要发送的数据写入通用异步收发控制器发送寄存器,等待发送。
串口数据收发模块在对8个串口进行数据的接收和发送时采用了轮询的工作方式,即对发送数据和接收数据采用分时作业方式。按照此模块的最高工作波特率614400bps计算,发送或者接收一字节数据(按10位计,1个起始位,8个数据位,1个停止位)需要16.3us,也就是说,对8路串口的发送寄存器和接收寄存器轮询扫描一遍,并且将相应的数据从接收寄存器读取出来和将相应的数据写入发送寄存器的时间总和不能大于16.3us,才能不影响到数据的正常收发。这样看来,虽说实际上内部收发处在一种串行工作模式下,但对每路串口之间的通信,依然可以看做是并行工作方式,它们之间的数据通信互不影响。
(4)数据帧接收识别模块。在接收数据时,可编程逻辑单元会对数据进行甄别,可编程逻辑单元里有8个由Verilog硬件描述语言构成的数据帧接收识别模块,他们独立工作,可设置各串口的数据帧鉴别格式,它们只接收符合各自设定的数据帧格式的数据,而剔除掉不符合自己的数据帧格式的数据。当这个数据帧符合要求时,就将其存入相应串口的接收FIFO,当接收到一个完整的数据帧后,将其转移到外部大容量的数据缓存区。为了数据的不丢失,FIFO采用乒乓操作,即一个串口设置了2个接收FIFO,第一帧数据存入FIFO1,并通知数据搬移模块将数据从FIFO1中取出,在取数据的同时,下一帧数据将不再写入FIFO1,而是存入FIFO2,这样就防止了FIFO未读完即写入的状况发生。
(5)数据搬移模块。数据搬移模块在接收时负责将接收FIFO中的数据搬移到大容量存储单元中暂存,并查询双口RAM是否处于可写状态且剩余存储空间是否大于数据帧的大小,若满足要求,又将暂存于所述大容量存储单元内的帧数据搬移到双口RAM内,并向CPU发出中断请求;在发送时,接收到CPU的发送中断请求后,将要发送的数据从双口RAM快速转移到内部FIFO,并通知串口数据收发模块将数据发送出去。为什么要将数据从双口RAM转移到FIFO呢?因为通用异步收发控制器发送数据的速度相对于CPU往双口RAM写入数据的速度来说是很慢的,对于一个待发送的数据帧而言,若串口数据收发模块直接从双口RAM取数据的话,则其将长时间占据双口RAM的控制权,而禁止CPU向双口RAM写入下一帧待发送数据,这样就影响了发送效率。所以先将数据快速搬移到FIFO,释放双口RAM的控制权,以便CPU对双口RAM进行操作。
(6)CPCI转局部总线模块。由于CPCI总线地址线和数据线是复用的,其不能直接与通用异步收发控制器和大容量存储单元等进行数据交换,所以通常的CPCI扩展卡都需要使用PCI桥接芯片,将CPCI总线转换为本板使用的局部总线。本发明采用可编程逻辑单元,以硬件描述语言来实现PCI桥的功能。
如附图3所示,所述的智能模式相对于CPU来说为数据帧传输模式,其数据的接收流程包括以下步骤:
步骤101:远方设备将数据流发送到某个串口,所述的接口电平转换器将IEA232/IEA485/IEA422通信的电气信号转换为TTL信号,经过所述的高速数字隔离器传输到所述的通用异步收发控制器,进入步骤102;
步骤102:可编程逻辑单元内的串口数据收发模块定时查看所述通用异步收发控制器各串口的接收寄存器是否有数据,若有,则进入步骤103;
步骤103:串口数据收发模块读出接收寄存器内的字节数据,并将该字节数据送往数据帧识别模块,进入步骤104;
步骤104:数据帧识别模块根据初始化设置的数据帧格式对收到的字节数据进行判别,若数据符合数据帧格式要求,则进入步骤105;若不符合,则进入步骤106,丢掉该字节数据并将之前收到的此帧其他数据从接收FIFO中清空,重新回到步骤102;
步骤105:将数据存入可编程逻辑单元内部相应串口的接收FIFO内,并进入步骤107;
步骤107:判断所述的FIFO内是否为完整的一帧数据,若是,则进入步骤108;
步骤108:将该帧数据存入所述的大容量存储单元内,进入步骤109;
步骤109:数据搬移模块判断可编程逻辑单元内为该串口开设的双口RAM区是否处于可写状态且剩余存储空间是否大于数据帧的大小,若是,则进入步骤110。若判断为否,则数据继续存在大容量存储单元内;
步骤110:数据搬移模块将数据从大容量存储单元内转移到双口RAM内并向CPU发出一个硬件中断请求,进入步骤111;
步骤111:CPU收到中断请求后,通过CPCI转局部总线模块将此帧数据读入CPU内存。
至此,一个完整的数据帧接收过程就结束了。
如附图4所示,智能模式下数据的发送流程包括以下步骤:
步骤201:CPU将要发送的一帧数据通过CPCI转局部总线模块写入某串口双口RAM区,并给数据搬移模块送出一个发送中断请求,进入步骤202;
步骤202:数据搬移模块收到中断请求信号后将该帧数据从双口RAM内快速搬移到该串口发送FIFO区,进入步骤203;
步骤203:可编程逻辑单元内的串口数据收发模块查询通用异步收发控制器对应串口是否为允许发送状态,若是,则进入步骤204;
步骤204:串口数据收发模块读出FIFO中一个字节数据,将其写入通用异步收发控制器发送寄存器,进入步骤205;
步骤205:通用异步收发控制器将数据转化为串行数据后经高速数字隔离器件和接口电平转换器件发送给外设,进入步骤206;
步骤206:重复步骤203~步骤205,直到该帧数据全部发送完。
至此,一个完整的数据帧发送过程就结束了。
如附图5所示,所述的非智能模式为常规的串口通信模式,即CPU直接与通用异步收发控制器以字节为单位交互数据,此时所述的可编程逻辑单元内部只有CPCI转局部总线模块工作,其余单元均不参加工作。其数据的接收流程包括以下步骤:
步骤301:远方设备将数据流发送到某个串口,所述的接口电平转换器将IEA232/IEA485/IEA422通信的电气信号转换为TTL信号,经过所述的高速数字隔离器传输到所述的通用异步收发控制器,进入步骤302;
步骤302:所述的通用异步收发控制器收到一字节数据后将其存入接收寄存器内并向CPU发出一个硬件中断请求,进入步骤303;
步骤303:CPU收到中断请求后通过CPCI转局部总线模块读出该字节数据,进入步骤304;
步骤304:CPU判断数据是否符合报文格式要求,若符合,则进入步骤305;若不符合,则进入步骤306,丢掉该字节数据并将之前收到的此帧其他数据从内存中清空,并返回步骤303;
步骤305:CPU将该字节数据写入内存,进入步骤307;
步骤307:重复步骤301~步骤306,直到该帧数据接收完成。
至此,一个完整的数据帧接收过程就结束了。
如附图6所示,非智能模式下数据的发送流程包括以下步骤:
步骤401:CPU首先查看通用异步收发控制器相应串口是否处于允许发送状态,若允许发送,则进入步骤402;
步骤402:CPU将要发送的1个字节数据写入通用异步收发控制器发送寄存器,进入步骤403;
步骤403:通用异步收发控制器将数据转化为串行数据后经高速数字隔离器件和接口电平转换器件发送给外设,进入步骤404;
步骤404:重复步骤401~步骤403,直到该帧数据全部发送完。
至此,一个完整的数据帧发送过程就结束了。
Claims (3)
1.一种多模式高速智能异步串口通信模块,其特征在于:其硬件架构是基于CPCI总线的异步串口通信模块,该模块硬件包括可编程逻辑单元、大容量存储单元、通用异步收发控制器、高速数字隔离器件和接口电平转换器件;所述的可编程逻辑单元通过CPCI总线与CPU连接,并向CPU提交数据和接收CPU的下发数据;所述的大容量存储单元通过RAM接口与所述的可编程逻辑单元连接,进行接收数据的暂存处理;所述的通用异步收发控制器通过局部总线与所述的可编程逻辑单元连接,进行通信数据的收发处理;所述的高速数字隔离器件两端分别与所述的通用异步收发控制器和所述的接口电平转换器件连接,进行通信信号的传输;所述的接口电平转换器件一端与外设通过RS232/RS485/RS422接口连接,另一端与所述的高速数字隔离器件连接,进行通信信号的逻辑电平转换和传输。
2.根椐权利要求1所述的一种多模式高速智能异步串口通信模块,其特征在于:所述的可编程逻辑单元是核心组成部分,其内部集成了嵌入式微处理器及由Verilog硬件描述语言设计的各种功能模块,所述的Verilog硬件描述语言设计的各种功能模块包括:模式选择寄存器、接口选择寄存器、串口数据收发模块、数据帧接收识别模块、数据搬移模块和CPCI转局部总线模块。
3.根椐权利要求1所述的一种多模式高速智能异步串口通信模块的实现方法,其特征在于:该方法包括设备初始化设置、智能模式下数据收发处理和非智能模式下数据收发处理;
所述的设备初始化设置,包括以下内容:
a. 接口标准设置:RS232、RS422或RS485;
b. 串口工作模式设置:智能模式或非智能模式;
c. 若工作为所述的智能模式,则进行数据帧格式设置,包括:报文头、报文尾;
d. 串口参数设置:包括波特率、数据位(5~8位)、校验位(奇校验、偶校验或无校验位)、停止位(1位、1.5位或2位);
所述的智能模式相对于CPU来说为数据帧传输模式,其数据的接收流程,包括以下步骤:
步骤101:远方设备将数据流发送到某个串口,所述的接口电平转换器将IEA232/IEA485/IEA422通信的电气信号转换为TTL信号,经过所述的高速数字隔离器传输到所述的通用异步收发控制器,进入步骤102;
步骤102:可编程逻辑单元内的串口数据收发模块定时查看所述通用异步收发控制器各串口的接收寄存器是否有数据,若有,则进入步骤103;
步骤103:串口数据收发模块读出接收寄存器内的字节数据,并将该字节数据送往数据帧识别模块,进入步骤104;
步骤104:数据帧识别模块根据初始化设置的数据帧格式对收到的字节数据进行判别,若数据符合数据帧格式要求,则进入步骤105;若不符合,则进入步骤106,丢掉该字节数据并将之前收到的此帧其他数据从接收FIFO中清空,重新回到步骤102;
步骤105:将数据存入可编程逻辑单元内部相应串口的接收FIFO内,并进入步骤107;
步骤107:判断所述的FIFO内是否为完整的一帧数据,若是,则进入步骤108;
步骤108:将该帧数据存入所述的大容量存储单元内,进入步骤109;
步骤109:数据搬移模块判断可编程逻辑单元内为该串口开设的双口RAM区是否处于可写状态且剩余存储空间是否大于数据帧的大小,若是,则进入步骤110;若判断为否,则数据继续存在大容量存储单元内;
步骤110:数据搬移模块将数据从大容量存储单元内转移到双口RAM内并向CPU发出一个硬件中断请求,进入步骤111;
步骤111:CPU收到中断请求后,通过CPCI转局部总线模块将此帧数据读入CPU内存;
其数据的发送流程包括以下步骤:
步骤201:CPU将要发送的一帧数据通过CPCI转局部总线模块写入某串口双口RAM区,并给数据搬移模块送出一个发送中断请求,进入步骤202;
步骤202:数据搬移模块收到中断请求信号后将该帧数据从双口RAM内快速搬移到该串口发送FIFO区,进入步骤203;
步骤203:可编程逻辑单元内的串口数据收发模块查询通用异步收发控制器对应串口是否为允许发送状态,若是,则进入步骤204;
步骤204:串口数据收发模块读出FIFO中一个字节数据,将其写入通用异步收发控制器发送寄存器,进入步骤205;
步骤205:通用异步收发控制器将数据转化为串行数据后经高速数字隔离器件和接口电平转换器件发送给外设,进入步骤206;
步骤206:重复步骤203~步骤205,直到该帧数据全部发送完;
所述的非智能模式为常规的串口通信模式,即CPU直接与通用异步收发控制器以字节为单位交互数据,此时所述的可编程逻辑单元内部只有CPCI转局部总线模块工作,其余单元均不参加工作;其数据的接收流程包括以下步骤:
步骤301:远方设备将数据流发送到某个串口,所述的接口电平转换器将IEA232/IEA485/IEA422通信的电气信号转换为TTL信号,经过所述的高速数字隔离器传输到所述的通用异步收发控制器,进入步骤302;
步骤302:所述的通用异步收发控制器收到一字节数据后将其存入接收寄存器内并向CPU发出一个硬件中断请求,进入步骤303;
步骤303:CPU收到中断请求后通过CPCI转局部总线模块读出该字节数据,进入步骤304;
步骤304:CPU判断数据是否符合报文格式要求,若符合,则进入步骤305;若不符合,则进入步骤306,丢掉该字节数据并将之前收到的此帧其他数据从内存中清空,并返回步骤303;
步骤305:CPU将该字节数据写入内存,进入步骤307;
步骤307:重复步骤301~步骤306,直到该帧数据接收完成;
非智能模式下数据的发送流程包括以下步骤:
步骤401:CPU首先查看通用异步收发控制器相应串口是否处于允许发送状态,若允许发送,则进入步骤402;
步骤402:CPU将要发送的1个字节数据写入通用异步收发控制器发送寄存器,进入步骤403;
步骤403:通用异步收发控制器将数据转化为串行数据后经高速数字隔离器件和接口电平转换器件发送给外设,进入步骤404;
步骤404:重复步骤401~步骤403,直到该帧数据全部发送完。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110392553.2A CN102420877B (zh) | 2011-12-01 | 2011-12-01 | 一种多模式高速智能异步串口通信模块及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110392553.2A CN102420877B (zh) | 2011-12-01 | 2011-12-01 | 一种多模式高速智能异步串口通信模块及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102420877A true CN102420877A (zh) | 2012-04-18 |
CN102420877B CN102420877B (zh) | 2014-11-19 |
Family
ID=45945109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110392553.2A Expired - Fee Related CN102420877B (zh) | 2011-12-01 | 2011-12-01 | 一种多模式高速智能异步串口通信模块及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102420877B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412833A (zh) * | 2013-08-30 | 2013-11-27 | 哈尔滨工业大学 | VxWorks操作系统下CPCI总线扫描ADC功能模块驱动设备及其控制方法 |
CN104468039A (zh) * | 2014-12-01 | 2015-03-25 | 浪潮集团有限公司 | 一种基于fpga的帧解析方法及装置 |
CN105068966A (zh) * | 2015-08-19 | 2015-11-18 | 长沙威胜信息技术有限公司 | 串口自动识别方法 |
CN107018614A (zh) * | 2017-05-18 | 2017-08-04 | 益阳市首航电子科技有限公司 | 航标灯通信协议 |
CN107395565A (zh) * | 2017-06-15 | 2017-11-24 | 北京机械设备研究所 | 一种定长单字节格式报文协议下串口接收预处理方法 |
CN108197042A (zh) * | 2017-12-20 | 2018-06-22 | 北京控制工程研究所 | 一种基于fpga的通用异步串口及其应答方法 |
CN109274394A (zh) * | 2018-09-03 | 2019-01-25 | 广州健飞通信有限公司 | 一种基于现场可编程门阵列学习型通用异步收发传输器 |
CN109688070A (zh) * | 2018-12-13 | 2019-04-26 | 迈普通信技术股份有限公司 | 一种数据调度方法、网络设备及转发单元 |
CN110377549A (zh) * | 2019-06-30 | 2019-10-25 | 中国船舶重工集团公司第七一六研究所 | 基于fpga的异步串行数据交换系统及方法 |
CN111352887A (zh) * | 2019-11-19 | 2020-06-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种pci总线到可配置帧长度串行总线适配和传输方法 |
CN112816917A (zh) * | 2021-04-16 | 2021-05-18 | 成都工百利自动化设备有限公司 | 一种变压器冲击监测装置 |
CN114826487A (zh) * | 2022-04-24 | 2022-07-29 | 上海威迈斯新能源有限公司 | 串口异步通信的发送方法及接收方法、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271332A (zh) * | 2008-05-09 | 2008-09-24 | 北京方天长久科技有限公司 | 紧凑型一体化冗余控制器及其控制方法 |
CN101527735A (zh) * | 2009-04-07 | 2009-09-09 | 上海许继电气有限公司 | 基于cpci总线的多串口数据通信卡设备及其方法 |
-
2011
- 2011-12-01 CN CN201110392553.2A patent/CN102420877B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271332A (zh) * | 2008-05-09 | 2008-09-24 | 北京方天长久科技有限公司 | 紧凑型一体化冗余控制器及其控制方法 |
CN101527735A (zh) * | 2009-04-07 | 2009-09-09 | 上海许继电气有限公司 | 基于cpci总线的多串口数据通信卡设备及其方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412833A (zh) * | 2013-08-30 | 2013-11-27 | 哈尔滨工业大学 | VxWorks操作系统下CPCI总线扫描ADC功能模块驱动设备及其控制方法 |
CN104468039A (zh) * | 2014-12-01 | 2015-03-25 | 浪潮集团有限公司 | 一种基于fpga的帧解析方法及装置 |
CN105068966B (zh) * | 2015-08-19 | 2018-07-06 | 长沙威胜信息技术有限公司 | 串口自动识别方法 |
CN105068966A (zh) * | 2015-08-19 | 2015-11-18 | 长沙威胜信息技术有限公司 | 串口自动识别方法 |
CN107018614A (zh) * | 2017-05-18 | 2017-08-04 | 益阳市首航电子科技有限公司 | 航标灯通信协议 |
CN107395565A (zh) * | 2017-06-15 | 2017-11-24 | 北京机械设备研究所 | 一种定长单字节格式报文协议下串口接收预处理方法 |
CN108197042A (zh) * | 2017-12-20 | 2018-06-22 | 北京控制工程研究所 | 一种基于fpga的通用异步串口及其应答方法 |
CN108197042B (zh) * | 2017-12-20 | 2020-05-12 | 北京控制工程研究所 | 一种基于fpga的通用异步串口及其应答方法 |
CN109274394A (zh) * | 2018-09-03 | 2019-01-25 | 广州健飞通信有限公司 | 一种基于现场可编程门阵列学习型通用异步收发传输器 |
CN109688070A (zh) * | 2018-12-13 | 2019-04-26 | 迈普通信技术股份有限公司 | 一种数据调度方法、网络设备及转发单元 |
CN110377549A (zh) * | 2019-06-30 | 2019-10-25 | 中国船舶重工集团公司第七一六研究所 | 基于fpga的异步串行数据交换系统及方法 |
CN111352887A (zh) * | 2019-11-19 | 2020-06-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种pci总线到可配置帧长度串行总线适配和传输方法 |
CN111352887B (zh) * | 2019-11-19 | 2023-10-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种pci总线到可配置帧长度串行总线适配和传输方法 |
CN112816917A (zh) * | 2021-04-16 | 2021-05-18 | 成都工百利自动化设备有限公司 | 一种变压器冲击监测装置 |
CN114826487A (zh) * | 2022-04-24 | 2022-07-29 | 上海威迈斯新能源有限公司 | 串口异步通信的发送方法及接收方法、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102420877B (zh) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102420877B (zh) | 一种多模式高速智能异步串口通信模块及实现方法 | |
CN103064815B (zh) | 一种单spi总线控制多can接口的控制方法 | |
CN103248526A (zh) | 实现带外监控管理的通信设备、方法及主从切换方法 | |
CN202084028U (zh) | 一种模块化多串口扩展装置 | |
CN104679702B (zh) | 多路高速串行接口控制器 | |
CN103888293A (zh) | 多通道fc网络数据仿真系统的数据通道调度方法 | |
CN106155960A (zh) | 基于gpio握手和edma的uart串口通信方法 | |
CN102480426B (zh) | 基于pcie交换总线的通信方法及一种pcie交换系统 | |
CN201583945U (zh) | 基于fpga的单片机多机串行通信系统 | |
CN2938595Y (zh) | 一种用于板间通信的高速串行接口装置 | |
CN101175077A (zh) | 光纤通道知识产权核 | |
CN102073611B (zh) | 一种i2c总线控制系统及方法 | |
CN101394349B (zh) | 不同接口设备通信中的数据传输方法及系统 | |
CN110311697B (zh) | 远程数据集中器 | |
CN101221550A (zh) | 一种串行通讯的方法及芯片 | |
CN1331070C (zh) | 数据通信的方法及设备 | |
CN110971621B (zh) | 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法 | |
CN101447988A (zh) | 一种基于fpga的千兆数据通信卡 | |
CN103885910B (zh) | 多设备在主模式下进行iic通信的方法 | |
CN202750089U (zh) | 蓝牙装置和集成式外设 | |
CN101534259B (zh) | 异步通信控制器及其控制方法 | |
CN100574319C (zh) | 计算机系统中的基于信用的流动控制的方法、系统和设备 | |
CN102467480A (zh) | 虚拟打印传输系统 | |
CN102420734A (zh) | 一种can总线拓扑结构实现系统 | |
CN117435538A (zh) | 一种PCIe转SRIO的桥接系统 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141119 Termination date: 20211201 |
|
CF01 | Termination of patent right due to non-payment of annual fee |