3. 2. 2 UART通信接口模块的实现
RS - 232的实现通常采用专用的UART(Universal Asynchronous Receiver and Transmitter)接口芯片或利用单片机本身所带有的异步通信功能,但有些情况下也需要利用可编程芯片通过软件的编制来实现UART的功能。在本设计中,为了方便文件的传输,我们也设计了基于UA RT的串口通信模块。
3. 2. 2.1通信协议
异步串口包括接收和发送两个部分。接收部分将收到的以帧为单位的串行输入信号转化为并行信号供取走。发送部分则完成信号的并一串转换。同时会给传送的8位数据加上起始位,奇偶校验位和停止位。异步串行通信关键要保证通信双方收发同步。由于没有时钟线,所以双方必须以一个固定的频率,同步的收发数据,才能保证数据传送的正确性
异步串行通信的数据传送格式如下图:
[19]
。
3.2.2.2 UART通信接口实现原理
串口发送数据格式:1位起始位(‘0’),8位数据位,1位停止位(‘1’),空闲位(‘1’)。 接收数据: 按照串口传输协议,检测起始位,为防止因干扰或其它因素引起的电平跳动,以波特率16倍的频率检测,一旦检测到起始位,就开始接收数据,要保证在数据位的中间取样。
对于异步接收器而言,同步的实现就是靠寻找起始位来作为一帧数据的开始。通常的做法是产生一个16倍(或32倍)于波特率的时钟信号clkl6x,当 clkl6x的前后两个脉冲沿检测到串行输入信号从高到低的跳变时,即表明一帧数据的开始,然后再经过8个clkl6x周期,以该时刻点为基准,每隔16个。1k16x周期(即串行通信周期),就将该时刻收到的串行数据移入移位寄存器rsr中,当8位数据(假设数据长度为8位)均移入寄存器后,再将rsr的内容移入二级缓冲rbr,设置数据准备好信号dataready,去控制数据的并行输出。同时,用dataready信号上升沿对接收帧数进行计数。本设计中协议规定文件以一个十六进制00数据作为结束,因此检测到帧数据为00时将RX_ done信号置高,表明文件接收完毕。如需要给出出错信号,可以判断奇偶校验位,如有错,设置校验错信号parityerror;再判断其后的停止位,如有错,则设置帧错误信号framingerrorarxd为串行输入信号,clkl6x可以根据实际的波特率由高频时钟信号分频得到。dout是并行输出信号。
发送数据: 串口数据发送相对接收较为简单,只需要依次发送起始位,数据位,停止位即可,注意波特率的计算[20]。
由于实际用的板子的晶振是50MHz的,所以调用了分频子模块counter,以得到9600Hz的16倍的clkl6x的时钟。
3. 2. 2. 3 UART通信接口模块顶层框图
通过上述分析,UART通信接口模块的顶层框图如下:
图3-8 UART通信接口模块的顶层框图
3.2.3 B1ockRAM存储模块的实现 3.2.3.1 B1ockRAM存储器的原理
对FPGA内部的B1ockRAM区:
存储区大小及数据宽度可取以上几种不同组合方式。本例中选用8*512。
每一块存储区大小都为4K, SPARTAN II不同型号提供4-14块(block)不等的存储块。本例用XC2S100,使用其中的8块。
应用时可选双端(Figure1)或单端(Figure2)两种形式。由于本设计中RAM有64位数据的
读写和8位数据的读写,采用双端形式可以方便地址线的控制。
上表中提供了几种Primitive,通过调用,可实现Width分别为1, 2, 4, 8, 16在本设计中的一个调用例子如下:
RAMB4-S8-S8
ram0(.DOA(do0), .DOB(data_out64[63:56]), .ADDRA(addr_a), .CLKA(clk_slow),.
DIA(data_in8), .ENA(1'bl), .RSTA(1'b0), .WEA(we0), .ADDRB(addr_b), .CLKB(clk), .DIB(data_in64[63:56]), .ENB(1'bl), .RSTB(1'b0), .WEB(data_in64 en));
可用工NIT_ 00-INIT_ Of对4K存储区进行初始化。 应用举例:
INST \ INIT_00 =0123456789ABCDEF0123456789ABCDEF 0123456789ABCDEF0123456789ABCDEF;
在本设计中对默认的所有存储区初始化为0;本设计中RAM读写的时钟采用UART通信模块中的16倍于波特率的时钟信号clkl6x:数据宽度定为8,则每块地址范围为0-511,共用了8块,所以ADDR要12位,[11:0]。
3.2.3.2 B1ockRAH存储模块的顶层框图
通过上述分析,BlockRAM存储模块的顶层框图如下:
图3-10 B1ockRAM存储模块的顶层框图
3. 2. 4 DES加密系统整体设计结果 3. 2. 4.1 DES加密系统整体设计顶层框图
综上所述,DES加密系统整体设计顶层框图如下: