RS232-接口数据转发协议设计PPT文件格式下载.pptx

上传人:b****1 文档编号:13886030 上传时间:2022-10-14 格式:PPTX 页数:24 大小:178.66KB
下载 相关 举报
RS232-接口数据转发协议设计PPT文件格式下载.pptx_第1页
第1页 / 共24页
RS232-接口数据转发协议设计PPT文件格式下载.pptx_第2页
第2页 / 共24页
RS232-接口数据转发协议设计PPT文件格式下载.pptx_第3页
第3页 / 共24页
RS232-接口数据转发协议设计PPT文件格式下载.pptx_第4页
第4页 / 共24页
RS232-接口数据转发协议设计PPT文件格式下载.pptx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

RS232-接口数据转发协议设计PPT文件格式下载.pptx

《RS232-接口数据转发协议设计PPT文件格式下载.pptx》由会员分享,可在线阅读,更多相关《RS232-接口数据转发协议设计PPT文件格式下载.pptx(24页珍藏版)》请在冰豆网上搜索。

RS232-接口数据转发协议设计PPT文件格式下载.pptx

起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。

本次设计采用的数据帧格式为:

一位起始位,8位数据位,一位校验位和一位停止位(停止位可为一位、一位半或二位,本次设计选用一位停止位),停止位后面是不定长度的空闲位。

其中停止位和空闲为高电平逻辑1;

起始位为低电平,逻辑0。

系统框图及模块功能实现,1.模块端口说明设计RS232接口数据转发协议模块,并且将8位并行数据转发为RS232协议的串口数据发送出去。

模块具体要求如下:

模块名:

modulers232;

外部提供:

clk信号,16MHz时钟;

外部信号:

rdy数据准备好信号;

当rdy由低电平变为高电平并持续一个时钟长度,数据开始转换并且发送。

data7:

0,需要发送的8位并行数据;

外部控制:

bps1:

0,波特率设置信号;

00:

4800bps,01:

9600bps10:

19200bps,11:

38400bps串行输出信号:

d_out,串行数据输出口;

parity,奇偶校验控制信号;

0:

奇校验,1:

偶校验,2.系统框图,波特率产生模块,reg1:

0bps_mode;

reg7:

0count;

regclk_3,clk_2,clk_1,clk_0;

always(posedgeclkorposedgerdy)/产生clk_3=38461.538400Hzif(rdy=1)beginclk_3=0;

count=0;

bps_mode=bps;

endelseif(count=208)/16000000/38400=416.666,208.333*2=416.666begincount=0;

clk_3=clk_3;

endelsecount=count+1;

always(posedgeclk_3orposedgerdy)/clk_2=19200Hzif(rdy=1)clk_2=0;

elseclk_2=clk_2;

always(posedgeclk_2orposedgerdy)/clk_1=9600Hzif(rdy=1)clk_1=0;

elseclk_1=clk_1;

always(posedgeclk_1orposedgerdy)/clk_0=4800Hzif(rdy=1)clk_0=0;

elseclk_0=clk_0;

波特率产生模块,regbps_clk;

always(bps_modeorclk_3orclk_2orclk_1orclk_0)/setupbpscase(bps_mode)2b00:

bps_clk=clk_0;

2b01:

bps_clk=clk_1;

2b10:

bps_clk=clk_2;

2b11:

bps_clk=clk_3;

default:

bps_clk=1bx;

endcase,波特率选择模块,regparity_mode;

always(posedgerdy)parity_mode=parity;

wireeven_bit,odd_bit;

assigneven_bit=(data7:

0);

assignodd_bit=even_bit;

regp_bit;

always(parity_modeoreven_bitorodd_bit)case(parity_mode)1b0:

p_bit=odd_bit;

1b1:

p_bit=even_bit;

p_bit=1bx;

endcase,校验位产生模块,reg3:

0cnt;

reg10:

0send_data;

regdata_out_enble,data_out;

always(negedgerdy)if(rdy=0)beginsend_data10:

0=1b1,p_bit,data7:

0,1b0;

data_out_enble=1;

endalways(posedgerdyorposedgebps_clk)if(rdy=1)cnt=0;

elseif(cnt=11)data_out_enble=0;

elsebegindata_out=send_datacnt;

cnt=cnt+1;

endassignd_out=data_out_enble?

data_out:

1bz;

数据帧的发送控制模块,系统框图,实现程序,modulers232(d_out,rdy,data,bps,parity,clk);

outputd_out;

inputrdy,parity,clk;

input7:

0data;

input1:

0bps;

reg1:

always(posedgeclkorposedgerdy)/posedgerdylatchedthebpsandgenerateclk_3=38461.5?

38400Hzif(rdy=1)beginclk_3=0;

endelseif(count=208)/208.333*2=416.666begincount=0;

regbps_clk;

endcaseregparity_mode;

regp_bit;

endcasereg3:

end,always(posedgerdyorposedgebps_clk)if(rdy=1)cnt=0;

endmodule,测试激励的设计,使用ModelSim-Altera6.5e(QuartusII10.0)StarterEdition软件进行仿真,为了精确模拟时钟信号,采用1ns单位时间,100ps精度进行仿真。

利用实例引用生成模块。

仿真激励分为三次,测试发送数据为8b0101_1010,前两次测试均采用4800bps的波特率,分别测试奇偶校验功能和发送功能,第三次测试波特率控制功能和数据发送功能,控制9600bps波特率进行发送。

测试文件,timescale1ns/100ps/62.5ns=16MHzdefineclk_cycle31moduletestbench;

regrdy,parity,clk;

wired_out;

always#clk_cycleclk=clk;

/产生激励脉冲clkinitialbeginclk=0;

0=2b00;

/选择波特率4800Hzdata7:

0=8b0101_1010;

parity=1;

/采用奇校验rdy=0;

#20rdy=1;

#25rdy=0;

#2500000/oddcheck4800Hzparity=0;

#2500000/oddcheck9600Hzbps1:

0=2b01;

0=8b1010_1010;

endrs232u0(.d_out(d_out),.rdy(rdy),.data(data),.bps(bps),.parity(parity),.clk(clk);

endmodule,仿真结果,使用ModelSim-Altera6.5e(QuartusII10.0)StarterEdition软件进行仿真,仿真顶层文件在work中选择测试激励文件testbench.v,然后使用add选项将变量加入到wave示波器中进行查看,如下图所示:

综合工具结果,采用QuartusII10.0WebEdition软件中的synthesis工具对代码进行综合,得到下图:

结果显示代码通过综合,证明此设计代码均为可综合的结构。

谢谢,Thanksforyourtime,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1