基于fpga类曼彻斯特编码发送模块设计

基于fpga类曼彻斯特编码发送模块设计

ID:32808484

大小:54.02 KB

页数:4页

时间:2019-02-15

基于fpga类曼彻斯特编码发送模块设计_第1页
基于fpga类曼彻斯特编码发送模块设计_第2页
基于fpga类曼彻斯特编码发送模块设计_第3页
基于fpga类曼彻斯特编码发送模块设计_第4页
资源描述:

《基于fpga类曼彻斯特编码发送模块设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于FPGA类曼彻斯特编码发送模块设计摘要本文基于类曼彻斯特码,米用VHDL编程,设计和仿真了串行数据传输过程中编码发送模块的功能。类曼彻斯特码采用数据中嵌入时钟信号的设计思想,是一种利用自同步法保持位同步的线路码型,在高速串行通信过程中采用这种编码方式可以降低系统功耗,同时具有很强的抗干扰能力。中图分类号TN7文献标识码A文章编号1674-6708(2014)109-0209-020引言类曼彻斯特码是一种利用自同步法保持位同步的线路码型,它用上升沿来表示一个码元的开始,然后连续两个时钟信号的高电平表示"1

2、”,对应编码数据"0100”,反之连续两个时钟的低电平表示“0”,对应编码数据"0111”o经类曼彻斯特编码后,无论是数据“1”还是数据“0”,在开始的时候都有一个上升沿,包含了时钟信息,正是具有这一特点,类曼彻斯特编码发送功能的设计实现解决了串行数据传输的同步时钟问题。1硬件设计在硬件设计时采用LVDS差分电路,LVDS是一种低摆幅的差分信号技术,它使得信号能够在差分平衡电缆上以几百Mbps的速率传输,其低压幅和低电流的驱动输出完全达到了低噪声和低功耗的要求。本设计中,FPGA传出的串行数据通过差分电路的

3、转换,形成差分形式的数据,向外传输,设计电路如图1所示。图1发送模块该电路临近输出端串接了10Q的电阻,可以防止差分线对短路,缺点在于420mV的驱动电压已接近数据手册中给出的Vod最大值454mV。同时设计中还需要考虑信号反射问题,这种现象的产生会导致噪声类型的转变,使其从原来的共模信号转变为差模信号,从而降低数据传输的准确性。为了避免这一问题,我们在设计中应做到在信号值不同时输出阻抗保持不变,同时,输出阻抗的下限只能稍小于传输线特性阻抗,而它的上限必须略大于传输线的特性阻抗。2软件设计类曼彻斯特编码可以

4、分为三步进行。第一步,检测编码周期是否开始并发送开始信号;第二步,对十五位数据进行类曼彻斯特编码;第三步,采用偶校验方式生成校验位,完成编码周期。具体编程时可以分为数据定义、数据转换及校验和数据编码及发送三大模块。2.1编码过程当时钟的上升沿到来时,若复位信号有效则将数据位、校验位都清零,否则countstatel加1。若countstatel为Oil则表示一个数据位传输的开始,传1位数据,传送完该数据共经历四个时钟周期,在这四个时钟周期内count_statel共经历四个时钟周期的转换,其状态转换流程如图

5、2所示。图2count_statel的状态转换图2.2数据定义模块数据定义模块完成对输入输出信号的定义,具体程序为:moduleManchester_Encoder(clklM,rst,data,out);inputclklM;inputrst;input[15:0]data;outputout;2.3数据转换及校验模块该模块采用状态机完成16位并行数据到串行数据的转换,通过逐位异或运算来生成奇偶校验位,具体程序为:reg[2:0]count_statel;reg[4:0]count_state2;reg[

6、15:0]send_data;regsend_bit,parity_bit;always@(posedgeclklM)beginif(!rst)begincount_statel=5"d2)&&((!count_statel[1]&&!count_statel[0])

7、((countstatel[1]ountstatel[0])&&sendbit));//发送数据位状态regout;always@(posedgeclklM)beginout

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。