资源描述
基于,Verilog HDL,的通信系统设计,基於,Verilog HDL,的通信系統設計,china_54,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,9,章 网络管理中,UART,系统设计,基于,Verilog,HDL,的通信系统设计,基于,Verilog,HDL,的通信系统设计,在通信系统设计过程中,异步串口(,UART,)通信由于其通用性而得到普及,特别在工业、网络控制设备和计算机通信中应用非常广泛。本章在基于,SNMP,协议实现的光分组交换网络控制系统中设计了网管代理和交换节点的接口电路,该接口电路采用,UART,的通信方式完成网管代理和交换节点的数据通信,是,UART,在网络控制设备和计算机通信中的一个应用范例。,基于,Verilog,HDL,的通信系统设计,9-1 SNMP,网络管理系统在光分组交换中的应用,计算机网络在很大程度上已经改变了现代人的生活。而网络规模的扩大,出现了各种影响网络服务的因素,如网络设备的实效问题等。,如何有效的网络管理,确保了信息网络的可靠性、稳定的运行已经成为了一个迫切需要解决的问题。为此,以国际标准化组织和,Internet,工作组为主导地位的组织机构相继做了大量工作,最主要的就是提出了,CMIS/CMIP,和制定了网络管理协议,SNMP,(,Simple Network Management Protocol,)。,SNMP,一出现,很快在因特网管理中得到应用,很多的代理系统和管理系统的网络经营者都采用了,SNMP,来进行管理。,SNMP,协议可以用于控制各种如电话系统、环境控制设备等,其应用空间非常广泛。,基于,Verilog,HDL,的通信系统设计,9,-,1,-,1 UART,的基本原理,在,UART,通信中,发射端和接收端不共享同一个时钟,也就是说,在一次,UART,通信过程中,没有时钟信号的传输,因此这种协议被称为异步通信协议。由于没有共享时钟,所以在数据进行传输之前,收发双方必须协商好一个数据传输的波特率。也就是说,,UART,接收端应该知道发送端发送数据的波特率,发送端也应该知道接收端的波特率。所以大多数情况下,设置发送端和接收端的波特率相同。,UART,发送端按照低位元在前、高位在后的顺序将数据移位元输出。一旦初始化时双方设置好了相同的波特率,收发双方的内部时钟都设定在同一频率。再一个,UART,帧传输开始,接收端将内部时钟调整到与发送端同步。这样接收端就可以在每一位的中心位置对数据进行采样,保证数据传输的正确性。常用的波特率有,110b/s,、,300b/s,、,600b/s,、,800b/s,、,9600b/s,和,19200b/s,等几种。,基于,Verilog,HDL,的通信系统设计,9,-,1,-,2 UART,的操作,UART,负责,SNMP,代理端计算机和,FPGA,控制器的通信,它以并行格式取出来自读,/,写,RAM,控制器的数据,并指定,UART,发射机将该数据以串行格式发射。同样,,UART,接收机检测传输情况,包括是否以串行方式接收数据,是否去掉起始和终止位,以及是否以并行方式存储数据字。接收机的工作更为复杂,由于时钟信号并不传输,所以需要接收机本地产生时钟信号,该采样时钟信号必须比数据传输波特率大,保证数据能够正确的被采样。,基于,Verilog,HDL,的通信系统设计,9-2 UART,发射机的设计和实现,发送部分的工作相对比较简单,由一个状态机来控制。该状态机一共有三个状态,:,“,idle,”,、,“,waiting,”,、,“,sending,”,状态,。,9-3 UART,接收机的设计和实现,UART,接收机的主要任务:接收数据的串行比特流,去掉起始位,以并行格式将数据传送到与主机相连的内存。到达的数据波特率是由发射机预置得到,所以接收到的数据传输速率并不一定和接收机的时钟频率一致。针对这个的问题,接收机采用如下的方法来解决。接收机本地产生一个更高频率的时钟频率,这个频率被称为采样时,钟“,sample_clk,”,,采样时钟在数据到来的时候对接收到的数据进行采样。,基于,Verilog,HDL,的通信系统设计,9-4 UART,波特率发生器的设计和实现,波特率发生器就是一个简单的分频器,以给定的系统时钟频率(外部晶振)和要求的波特率算出波特率分频因子来作为分频器的分频数。对于波特率发生器中的系数一般在,FPGA,实现时往往是固定的,但对于不同的实现,这个系数往往需要修改。波特率发生器产生的分频时钟,不是波特率时钟,而是波特率时钟的,8,倍,产生该时钟的目的就是保证精确采样,提取异步的串行数据。这里用到的外部晶振为,20MHz,,需要对它进行,260,分频得到,76900Hz,的采样频率。由于该,UART,通信系统选用的波特率为,9600bits/s,,所以分频得到的采样频率大概为波特率的,8,倍。,基于,Verilog,HDL,的通信系统设计,9-5,读,/,写,RAM,表控制模块设计和实现,本模块首先对接收到的数据进行解析,根据解析结果对,RAM,表进行相应的读和写操作。由于代理端发送的数据内容和长度不同,对,RAM,的操作也可能不同,而且需要判断数据有效的起始位置,所以必须对代理端发送的数据设定一定的帧格式。读,/,写,RAM,表控制模块可以根据数据帧格式对数据起始位置进行判断,同时对数据帧进行解析。该数据帧包含下面,5,个部分:,数据起始位置,。,对,RAM,的操作方式,。,操作,RAM,表首地址,。,数据长度,。,数据,。,基于,Verilog,HDL,的通信系统设计,9-6 RAM,表的“,IP Core,”,调用方法,RAM,表主要用于存放路由信息以及核心结点和边缘结点的相关数据,由于,Altera,公司已经将,RAM,表封装成,IP,核供用户调用。所以这里详细的介绍下在,Quartus,II,中调用,RAM,的,IP,核的方法。,选择,“,Tool,MegaWizard Plug-In Manager,”,,在之后的弹出对话框,中选择建立一个新的“,Megafunction,”,,选择,RAM,,,2-PORT,型,RAM,,确定生成,RAM,档的名称,点,击,“,Next,”,。进入如图,9-1,7,所示的,RAM,设置界面,1,。选,择“,with one read port and one write port,”,,点击,“,Next,”,按钮。,基于,Verilog,HDL,的通信系统设计,图,9-17,RAM,设置界面,1,基于,Verilog,HDL,的通信系统设计,进入如图,9-1,8,所示的,RAM,设置界面,2,。图,9-18,中可以选择产生的,RAM,寄存器的容量,读者可以根据设计要求设置,RAM,大小,这里,RAM,大小设置为,32,,点击,“,Next,”,按钮。,图,9-18,RAM,设置界面,2,基于,Verilog,HDL,的通信系统设计,打开如图,9-19,所示的,RAM,设置页面,3,。在该页面中可以选择时钟类型,这里选择,“,use separate,read,and,write,clocks,”,;同时选择复选框,“,Create an,rden,read enable signal,”,,创建一个读使能信号后,点击,“,Finish,”,按钮,完成对,RAM,的设置。,图,9-19,RAM,设置界面,3,基于,Verilog,HDL,的通信系统设计,9-7,本章小结,本章设计了基于,SNMP,协议下的光分组交换系统中的边缘,/,核心节点和,SNMP,代理端的接口电路,该接口电路主要功能是利用串口通信协议完成,SNMP,代理端向,RAM,路由表发送数据以及,SNMP,代理端从,RAM,路由表中读取数据的功能。其中最关键模块为串口通信模块,串口通信的方法应用广泛,希望读者熟练掌握。特别注意在设计时的时钟同步。,
展开阅读全文