当前,许多制造商提供通用串行通信芯片,并且其传输模式分为同步模式和异步模式。
其中,异步芯片主要与INTEL的8250芯片兼容;而异步芯片则与INTEL 8250芯片兼容。
虽然同步模式通常涉及受支持的传输协议(BSC,HDLC,SDLC等),所以当用户需要应用特定的同步传输协议时,通常有必要设计专用的SRT(同步收发器)。
过去,大多数通用逻辑组件用于设计,这导致冗长的设计和调试过程以及较低的系统稳定性,这非常不方便。
如今,随着以FPGA和CPLD为代表的可编程ASIC技术的日趋成熟和完善,用户可以使用EDA技术作为开发方法来根据自己的需求设计使用FPGA或CPLD满足其需求的芯片。
本文以统计时分复用器中专用同步收发器芯片的开发为例,介绍整个芯片的开发过程。
1统计时分多路复用器系统功能和模块组成统计时分多路复用器完成7通道异步数据和1通道同步数据的复用。
其功能框图如图1所示,同步串行端口传输协议如图2所示。
由于传输距离较短且通道数较少,因此功能相对简单。
考虑到系统功耗和成本,该专用SRT和整个接口控制单元都集成到CPLD(XC95144)中。
2 CPLD内部功能框图和设计CP CPLD的内部结构主要由接口控制单元和SRT组成。
在这里,我们主要介绍SRT的结构和功能模块(参见图3)。
由于所选的UART(通用异步接收器发送器)与INS8250兼容,为了简化主控制单元访问外部通信芯片的编程,统一操作流程,并尝试在INS8250中模仿INS8250的结构。
SRT的设计。
本设计采用模块化设计。
根据功能,SRT内部结构分为5个模块,每个模块对应一个VHDL设计文件。
这种设计的优点是有利于每个功能模块的编写和调试,从而减少了调试整个SRT的难度,并提高了软件的可维护性和可读性。
以下是每个设计文件的外部功能的简要介绍(端口说明和部分实现代码也列出了几个重要模块):(1)SRTCRTL.VHD SRTCRTL.VHD作为SRT的控制模块,负责以下内容:地址解码,当片选信号有效时,数据线上的数据被写入相应的寄存器。
SRT芯片配备6个控制寄存器,包括接收缓冲器,发送保持器,线路控制寄存器,除数寄存器(每个1高8位和低8位)和自环控制寄存器。
每个寄存器都分配有一个地址。
通过读写相应的地址,CPU可以完成诸如数据发送,接收,自循环和芯片参数设置之类的操作。
(2)LOOP.VHD此模块的功能是根据用户指令测试芯片本身的功能。
用户首先将芯片设置为自环状态,使芯片内部的发送数据线和直接接收数据线短路;然后将特定数据写入发送持有人,并将其与从接收缓冲区读取的数据进行比较。
如果相同,则用户可以判断芯片是否正常工作。
(3)CLKGEN.VHD CLKGEN.VHD是波特率发生器模块,用于生成同步时钟信号doclk进行发送。
除数寄存器的高8位和低8位(总共16位数据)用作除数,可以对外部2MHz时钟源的频率进行分频。
用户可以通过修改除数寄存器的值来动态改变数据传输速率,因此操作方便灵活。
(4)RBR.VHD RR.VHD是整个芯片的接收模块,包括接收缓冲器,接收数据同步,串行/并行转换。
端口说明如下:当接收缓冲区中没有数据时,ren信号有效,以通知发送方发送数据。
然后根据dilck对di信号进行采样。
一旦缓冲区已满,ren无效且dr有效,并且通知CPU读取。