本站小编为你精心准备了双口RAM接口设计论文参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
1系统总体设计
便携式手持设备串行通信系统由3个部分组成:异步接收单元、异步发送单元和双口ram单元。接收数据时,外部串行数据经过电平转换后被异步接收单元接收并转换成并行数据,通过接收单元进入双口RAM并进行缓存,最后送入DSP处理;数据发送时,数据从双口RAM取出数据后,在异步发送单元的作用下将数据转化为串行数据,再经过电平转换后发出。本文将用FPGA设计以上3个模块,通过接口设计,可将FPGA与DSP连接。系统结构框图如图1所示。
2单元设计
2.1异步接收单元的设计异步接收单元实现数据的有序接收,控制UART接口和双口RAM以及向DSP提出数据接收中断。异步接收单元由8倍倍频器、8bit寄存器、串并转换器、并口输入构成。8倍倍频器用来产生8倍串口传输时钟脉冲;8bit寄存器用来存储采样后的串行数据;串并转换器用来控制串行数据向并行数据转换的时序和组合逻辑,是异步接收单元的核心组成部件;并口输入用来向DSP传输并行数据。异步接收单元各模块信号连接如图2所示。异步接收单元的工作流程如下:根据DSP控制指令查看串口的传输速率并选择速率后,经倍频器产生一个8倍传输速率的接收串行数据采样时钟脉冲,由采样脉冲采样串行数据后存至寄存器中。查看寄存器中的数据,若一直为高电平则表明串口无数据输入;若8bit数据中由4个“1”和4个“0”组成,则表明接收到开始位,等采样下一个8bit数据时开始保存串行数据。通过时序控制逻辑将接收到的有效串行数据转换为并行数据后存入双口RAM中;向DSP输出中断请求;待收到DSP的中断响应后,读出双口RAM数据;将数据输入DSP中,中断请求信号和复位信号置0,数据接收完成。在本系统中,一组串行数据由1bit开始位、8bit数据位、1bit校验位和1bit结束位组成。开始位为“0”;结束位为“1”。在这里值得注意的是,接收串行数据时,我们需要判断接收的串行数据是否有效,由于数据传输在异步工作方式,可以通过判断它的开始位来记录串行数据。将传输时钟脉冲8倍频后,作为接收采样时钟脉冲,进行连续采样,待采样到一组数据由4个“1”和4个“0”组成时,则表明接收到串行数据的开始位,从此以后的数据便为有效串行数据,将每次采样8bit数据的最后一位存入双口RAM中。在这里我们记录寄存器的最后一位值,作为它每次采样的有效值,这样做的目的是为了保证它每次采样到的数据为每位串行数据的中间值,从而防止采样到数据边沿值而带来的错误信息。
2.2异步发送单元的设计相对于异步接收单元来说,异步发送单元的设计比较简单。异步发送单元连接DSP和双口RAM,来自DSP的并行数据在其控制作用下,有序地以串行方式发送到主控设备。异步发送单元由波特率产生器、波特率选择器、并串转换器、串口输出器组成。波特率产生器用来产生串口传输的时钟脉冲;波特率选择器用来选择系统所需的串口传输速率;并串转换器用来控制并行数据向串行数据转换的时序和组合逻辑,是异步发送单元的核心;串口输出器用来发送串行数据。异步发送单元各模块信号连接如图3所示。异步发送单元的工作流程如下:由波特率产生器输出9.6Kbps、19.2Kbps、57.6Kbps时钟脉冲。根据DSP控制指令查看串口的传输速率并选择速率。当并串转换器从双口RAM接收到“数据使能”(dataen)和“数据发送”(datasend)信号时,表示DSP有串行数据输出;立即使能并串转换器,计数并读出要传输的串行数据,待计数器溢出时,将数据保存至缓存中,最后使能串口输出器按位输出,待串行数据传输完成后复位标志位“shfen”,下一组串行数据将从开始位计数。校验位是将传输的串行数据按位“异或”操作后输出的。其主要VHDL编程案例如下所示。
2.3双口RAM的设计双口RAM(A端口和B端口)在串行通信中起到了数据缓存和信息交互的作用,本设计中双口RAM通过XilinxIP核产生,缓冲深度设计为256,即地址总线位数为8,数据从A口写入,从B口读出。将双口RAM划分为两个空间,一个为数据接收空间,一个为数据发送空间。接收数据时,存入接收空间的数据达到一个字节,接收单元向DSP发出中断请求,中断响应后数据从B口读入DSP;发送数据时,DSP向发送空间的A口中写数据,并向并串转换单元发出数据发送信号,数据从发送空间的B口读入并串转换单元,再经过UART口串行发送到主控设备。
3总结
本文通过使用一块FPGA芯片,经过VHDL语言编程设计异步接收单元、异步发送单元和双口RAM模块,并将以上模块有序组合,实现了便携式手持设备与主控设备的串口通信。该设计在实现预期功能的同时,避免了采用常用UART专用芯片带来的电路复杂、体积大、功耗高等缺点,简化了硬件电路,使便携式手持设备具有体积小、功耗低的优点。此外,利用FPGA的可任意编程的特点,可以通过编程而不改变外部电路就可实现不同功能,增加系统的灵活性。
作者:陈琦顾磊单位:中国电子科技集团公司第二十研究所总参信息化部驻西安地区军事代表室