1 / 13
文档名称:

串口通信发送接口-(LED).doc

格式:doc   大小:4,643KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

串口通信发送接口-(LED).doc

上传人:才艺人生 2024/5/3 文件大小:4.53 MB

下载得到文件列表

串口通信发送接口-(LED).doc

相关文档

文档介绍

文档介绍:该【串口通信发送接口-(LED) 】是由【才艺人生】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【串口通信发送接口-(LED) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。串口通信发送接口-(LED)硬件描述语言设计报告设计题目串行通信接收接口(LED)学院电子信息学院班级电子101姓名梁嘉诚学号1011002006设计时间2013年1月7~11日串行通信的特点是:数据传送按位顺序进行,最少值只需要一根传输线即可完成,节省传输线。与并行通信相比还有较为显著的优点,传输距离长,可以几米到几千米。在长距离内串行数据传送速率比并行数据传送速率快,,串行通信的通信时钟频率容易提高,串行通信的干扰能力十分强,其信号间的互相干扰完全可以忽略。正是由于串行通信的接线少、成本低,因此它在数据采集和控制系统中得到了广泛的应用,产品也多种多样。串行通信的分类串行传输中,数据时一位一位按照到达的顺序依次传输的,每位数据的发送的接受都需要时钟来控制,发送端通过发送时钟确定数据位的开始和结束,接受端需要在适当的时间间隔对数据流进行采样来正确的识别数据。接收端和发送端必须保持步调一致,否则数据传输就会出现差错。为了解决以上问题,串行通信可采用以下两种方法:同步通信和异步通信。⑴同步通信:同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。⑵异步通信:串行异步通信即RS232通信,是主机与外部硬件设备的常用通讯方式。可以双向传输。异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。异步通信中典型的帧格式是:1位起始位,7位(或8位)数据位,1位奇偶校验位,2位停止位。串行通信的工作模式通过单线传输信息是串行数据通信的基础。三种传送模式:单工、半双工、全双工。1、单工形式:单工形式的数据传送是单向的。通信双方中,一方固定是发送端,另一方则固定是接收端,使用一根传输线,如图1-2所示。:半双工通信使用同一根传输线,即可发送数据又可接受数据,但不能同时发送和接受。在任何时刻只鞥由其中的一方发送数据,另一方接受数据。因此半双工形式既可以使用一条数据线,也可以使用两条数据线。如图1-3所示。半双工形式半双工通信中每个端口都需要有一个收/发切换电子开关,通过切换来决定数据向哪个方向传输。因为有切换,所以会产生时间延迟,信息传输效率较低。3、全双工形式:RS-232全双工数据通信分别由两根可以在两个不同的端点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作。如图1-4所示。全双工形式在全双工形式中,每一端都有发送器和接收器,有两条传送线,可在交互式应用和远程监控系统中使用,信息传输效率较高。UART通信协议在异步通信中,是以字符为单位传送数据,是从低位到高位逐位传送,一个字符表示一帧信息。。,通常UART的一帧数据由四部分组成:一个起始位S(一般逻辑为“0”),后面是数据长度可变的数据位D0~D7(一般为6位到8位之间可变,数据的低位在前),一个可选的校验位PB(可选奇校验、偶检验或不需要检验),随后是一定长度的停止位P(可选1位、、或2位),停止位必须为逻辑“1”。在没有数据被传输时,数据线会一直处于逻辑“1”状态。由于没有共享时钟信号,因此在进行数据传输之前,收发双方必须协商好一个数据传输的波特率,也就是说,UART接收端应该知道发送端发送数据的波特率(相应的发送端也需要知道接收端的波特率)。在大多数情况下,发送数据和接受数据的波特率是相同的。UART发送端按照低位在前,高位在后的顺序移位输出数据。一旦在初始化过程中,双方协商好了通信的波特率,收发双方的内部时钟都设定在同一波特率(但时钟的相位不同)。在一个UART包传输开始,接收端将它的内部时钟调整到与发送端同步。这样接收端就可以在每一位的中心位置对数据位进行采样,保证数据传输的正确性。设计内容:串行通信接收接口(LED)基本要求:掌握RS232串口的协议,运用DE2的串口进行接收PC的数据。波特率为9600,8位数据位,无奇偶校验,一个停止位。硬件验证要求:在PC机通过“串行通信调试助手”软件发送数据,DE2通过串口接收数据,完成接收数据后在LED上面进行显示。在完成基本要求的基础上,可以通过拨码开关来选择奇偶校验的类别。流程图:接收模块流程图:程序://分频模块moduleclk_div(clk_in,nreset,clk_out);inputclk_in;inputnreset;outputclk_out;regclk_out=0;reg[8:t=0;parameterT=217;always@(posedgeclk_inornegedgenreset)beginif(nreset==0)begincnt<=0;clk_out<=0;endt==T)begin clk_out<=~clk_out; cnt<=0; endelsecnt<=cnt+1;endendmodule//接收模块modulerx(clk,nreset,rxd,data);inputclk,rxd,nreset;//clk=[7:0]data;reg[3:0]t;reg[3:0]s;reg[7:0]data0;reg[7:0]data;always@(posedgeclkornegedgenreset)//baud=9600hzif(nreset==0)begindata<=8'h00;s<=0;t<=0;data0<=8'h00;endelsebegincase(s)0:if(rxd==1)begins<=1;t<=0;end1:if(rxd==0)begins<=2;t<=t+1;end2:if(t==6)beginif(rxd==0)begins<=3;t<=0;endelsebegins<=1;t<=0;endendelset<=t+1;3:if(t==11)begindata0[0]<=rxd;t<=0;s<=4;endelset<=t+1;4:if(t==11)begindata0[1]<=rxd;t<=0;s<=5;endelset<=t+1;5:if(t==11)begindata0[2]<=rxd;t<=0;s<=6;endelset<=t+1;6:if(t==11)begindata0[3]<=rxd;t<=0;s<=7;endelset<=t+1;7:if(t==11)begindata0[4]<=rxd;t<=0;s<=8;endelset<=t+1;8:if(t==11)begindata0[5]<=rxd;t<=0;s<=9;endelset<=t+1;9:if(t==11)begindata0[6]<=rxd;t<=0;s<=10;endelset<=t+1;10:if(t==11)begindata0[7]<=rxd;t<=0;s<=11;endelset<=t+1;11:beginif(t==11)beginif(rxd==1)begint<=0;s<=0;data<=data0;endelsebegint<=0;s<=0;endendelse t<=t+1;enddefault:begint<=0;s<=0;endendcaseendendmodule//显示模块moduleHEX(SW,HEX1,HEX0);input[7:0]SW;outputreg[6:0]HEX1,HEX0;parameterseg0=7'b1000000,seg1=7'b1111001,seg2=7'b0100100,seg3=7'b0110000,seg4=7'b0011001,seg5=7'b0010010,seg6=7'b0000010,seg7=7'b1111000,seg8=7'b0000000,seg9=7'b0010000,