串行通信接口cpld.docx

上传人:b****7 文档编号:11361787 上传时间:2023-02-28 格式:DOCX 页数:22 大小:283.23KB
下载 相关 举报
串行通信接口cpld.docx_第1页
第1页 / 共22页
串行通信接口cpld.docx_第2页
第2页 / 共22页
串行通信接口cpld.docx_第3页
第3页 / 共22页
串行通信接口cpld.docx_第4页
第4页 / 共22页
串行通信接口cpld.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

串行通信接口cpld.docx

《串行通信接口cpld.docx》由会员分享,可在线阅读,更多相关《串行通信接口cpld.docx(22页珍藏版)》请在冰豆网上搜索。

串行通信接口cpld.docx

串行通信接口cpld

常州信息职业技术学院

计算机学院(软件学院)

项目报告

学期:

2011第二学期

院(系):

计算机/软件学院

项目名称:

串行通信接口

指导老师:

王璐、孙飞

班级:

计应094

学号:

0908143407

姓名:

谢海燕

项目时间:

2011/3/17—2011/4/17

目录

一、项目要求

二、模块的构成

三、模块分析设计

I、主模块分析设计

1、收发模块的I/O信号

2、示模块的I/O信号

3、控制模块的I/O信号

4、时钟模块的I/O信号

II、时钟模块分析设计

III、控制模块分析设计

1、控制模块的逻辑框图

2、数据分配器的逻辑功能

3、译码器1的逻辑功能

4、译码器2的逻辑功能

5、译码器3的逻辑功能

6、译码器4的逻辑功能

IV、显示模块分析设计

1、显示模块设计的框图

V、发送模块分析设计

1、移位寄存器模块的I/O信号

2、去抖动模块的I/O信号

3、发送控制模块的I/O信号

4、发送模块的逻辑框图

VI、发送控制模块分析设计

1、发送控制模块的基本构成

2、发送控制模块的逻辑框图

3、译码器1的逻辑功能

4、译码器2的逻辑功能

VII、发送移位寄存器模块分析设计

1、发送移位寄存器模块的基本构成

2、发送移位寄存器模块的逻辑框

VIII、接收模块分析设计

1、接收模块的基本构成

2、10位移位寄存器模块的I/O信号

3、3位移位寄存器模块的I/O信号

4、判多模块的I/O信号

5、接收控制模块的I/O信号

6、接收模块的逻辑框图

IX、接收控制模块分析设计

1、接收控制模块的基本构成

2、接收模块的逻辑框图

3、格雷码计数器的逻辑功能

4、译码器的逻辑功能

5、数据选择器1的逻辑功能

6、数据选择器2的逻辑功能

X、收发模块设计分析

四、程序改错

五、引脚锁定

1、单独数码管引脚锁定

2、8个LED灯引脚锁定

3、四段数码管片选引脚锁定

4、四段数码管引脚锁定

5、码开关引脚锁定

6、其他引脚锁定

六、项目小结

 

一、项目要求

串行通信接口项目在实验板上构成一个全双工的串行通信接口,用户利用这个串行接口,可以与PC机或其它设备进行串行通信,并可以设置串行通信的格式。

系统的状态分成工作状态和设置状态:

在工作状态下,进行串行通信;在设置状态下,进行通信格式的设置。

该系统用5个数码管(一个单独的数码管和一个4位数码管)显示串行通信的格式,比如串行通信的波特率是4800,7位数据位,校验方式为偶校验,则数码管显示为“E48-7”。

当系统处于工作状态时,如果收到串行数据,则把该数据显示在发光管上,如果接收到的数据有错误(包括奇偶校验错误和帧错误),则让蜂鸣器发出响声。

在工作状态下,若用户按下K1按键,则把拨码开关上的数据发送出去。

在工作状态下,如果用户按下K2按键,进入设置状态,首先设置进行校验方式的设置:

这时单独的数码管闪烁显示,若用户按下K3按键可以改变校验方式(共有O、E、n三个取值)。

在此过程中,如果用户再次按下K2按键,可以进行波特率的设置:

这时4位数码管的高两位闪烁,若用户按下K3按键可以改变波特率(共有96、48、24、12四个取值)。

在此过程中,如果用户再次按下K2按键,可以改变数据位位数:

这时4位数码管的最低位闪烁,用户按下K3按键可以改变数据位的位数(共有8、7、6、5四个取值)。

在此过程中,如果用户再次按下K2按键,则系统又回到工作状态。

此项目通过用VerilogHDL语言,在QuartusII7.2环境下进行编程,完成电路图的设计,最后通过实验板下载,完成项目的功能的实现。

由于项目比较复杂,代码比较多,模块比较多,利用模块化进行设计,在进行项目设计时,模块化设计是非常好好的方法,可以给设计人员带来很大的便利。

二、项目模块的构成

项目运用模块化进行设计。

这个项目总共分成以下几个模块:

1、主模块分析设计

2、时钟模块分析设计

3、控制模块分析设计

4、显示模块分析设计

5、发送模块分析设计

a、发送控制模块分析设计

b、发送移位寄存器模块分析设计

6、接收模块分析设计

a、接收控制模块分析设计

b、接收移位寄存器模块分析设计

c、判多模块分析设计

 

三、模块分析过程设计

I、主模块分析设计

根据设计要求,该系统可以分成4个模块:

收发模块(进行串行通信的发送和接收)、显示模块(显示通信的数据格式)、控制模块(控制系统的工作)、时钟模块(向系统各部分提供各种频率的时钟信号)。

1、收发模块的I/O信号

收发模块是实际进行串行通信的模块,它应该通过Txd和Rxd两条线与RS-232电平转换芯片连接,串行数据就是通过这两条线进行发送和接收的。

控制模块应该向收发提供一组控制信号,包括是否可以进行串行通信的控制信号、校验方式控制信号、数据位位数信号,共5位信号。

该模块应该连接拨码开关和K1按键,以控制进行串行数据的发送,共9位信号。

该模块还应该连接8个发光管和蜂鸣器,用以显示接收到的串行数据,并警示数据的差错,共9位信号。

收发模块所需要的时钟信号有:

50Hz信号(用于K1按键的去抖动)、1000Hz信号(用于蜂鸣器的发声)、串行数据发送时钟信号(用于串行数据发送)、串行数据接收时钟信号(用于串行数据接收),共4位信号。

2、显示模块的I/O信号

显示模块要控制一个单独的数码管和一个4位数码管显示串行通信的数据格式。

显示模块的输出有:

控制单个数码管显示的8位信号、控制4位数码管显示的4位位选信号和8位字段码信号,共20位信号。

显示模块输入的数据信号有:

单个数码管的显示数据信号(4位)、4位数码管的显示数据信号(4×4位),共20位信号。

显示模块所输入的控制信号就是5个数码管的闪烁信号,当某个数码管需要闪烁,则对应位为“1”。

显示模块所需要的时钟信号有:

400Hz时钟信号(用于数码管动态显示)、1Hz时钟信号(用于数码管的闪烁)。

3、控制模块的I/O信号

控制模块应该连接K2、K3按键,用于设置串行通信的格式。

控制模块向收发模块发出1组控制信号,用于串行通信的使能信号、校验方式控制信号、数据位位数信号,共5位信号。

控制模块还要向显示模块输出数据信号,包括:

单个数码管的显示数据信号(4位)、4位数码管的显示数据信号(4×4位),共20位信号。

控制模块还要向显示模块输出闪烁控制信号,共5位信号。

控制模块还要向时钟模块发出两位控制信号,用于控制串行数据发送时钟、接收时钟的实际频率。

控制模块需要输入的时钟信号只有一个:

50Hz的时钟信号(用于K2、K3按键去抖动)。

4、时钟模块的I/O信号

时钟模块的输入信号是系统提供的24MHz时钟信号。

它输出的信号有:

1Hz信号、50Hz信号、400Hz信号、1000Hz信号、串行数据发送时钟信号、串行数据接收时钟信号(这两个信号的实际频率由控制信号决定),一共6位信号。

时钟模块接收的控制信号用于控制串行数据发送时钟、接收时钟的实际频率,共2位信号。

按照前面的分析,主模块的逻辑框图如下:

II、时钟模块分析设计

根据设计要求,时钟模块主要为系统各部分提供各种频率的时钟信号,因此该模块主要由几个分频器构成。

另外由于输出的发送和接收时钟信号的具体频率,受控制模块传来的信号控制,所以还需要一个数据选择器。

按照前面的分析,时钟模块的逻辑框图如下:

III、控制模块分析设计

根据设计要求,该系统可以分成这几个模块:

去抖动模块(用于K2、K3按键)、一个表示系统状态的四进制计数器、一个3进制计数器用于表示校验方式、另外两个4进制计数器分别用于表示数据位位数和波特率,另外还有4个译码器以及少量门电路。

1、控制模块的逻辑框图

按照前面的分析,控制模块的逻辑框图如下:

2、数据分配器的逻辑功能

该模块的数据分配器,用于控制(去抖动后的)K3按键信号的传递对象,当控制信号是00时,输出信号全是1;当控制信号是01时,K3按键信号传递给校验方式计数器,另两个输出信号是1;当控制信号是10时,K3按键信号传递给波特率计数器,另两个输出信号是1;当控制信号是11时,K3按键信号传递给数据位数计数器,另两个输出信号是1。

3、译码器1的逻辑功能

译码器1用于控制,当输入信号是00时(工作状态),输出是00000(无闪烁);当输入信号是01时(设置校验方式),输出是10000(单独数码管闪烁);当输入信号是10时(设置波特率),输出是01100(4位数码管高2位闪烁);当输入信号是11时(设置波特率),输出是00001(4位数码管最低位闪烁)。

4、译码器2的逻辑功能

译码器2用于给单个数码管传送显示数据,而显示的内容为“n”、“O”、“E”,当输入为0x时(无校验),输出为1010(显示“n”);当输入为10时(偶校验),输出为1110(显示“E”);当输入为11时(奇校验),输出为0000(显示“O”)。

5、译码器3的逻辑功能

译码器3用于给4位数码管的高2位传送显示数据,当输入为00时(9600波特率),输出为8’h96;当输入为01时(4800波特率),输出为8’h48;当输入为10时(2400波特率),输出为8’h24;当输入为11时(1200波特率),输出为8’h12。

6、译码器4的逻辑功能

译码器4用于给4位数码管的最低位传送显示数据,当输入为00时(8位数据位),输出为4’h8;当输入为01时(7位数据位),输出为4’h7;当输入为10时(6位数据位),输出为4’h6;当输入为11时(5位数据位),输出为4’h5;

IV、显示模块分析设计

显示译码器由显示译码器、数据选择器、变量译码器、四进制计数器以及一些门电路构成。

1、显示模块设计的框图

按照前面的分析,显示模块的逻辑框图如下:

V、发送模块分析设计

发送模块的核心是一个“并入串出”的移位寄存器子模块,它在(去抖动后的)K1按键信号的控制下,可以接收并行的拨码开关信号(还包括起始位和校验位);并在发送时钟的控制下,可以数据的移位,并把最低位进行输出到Txd引脚上。

发送模块还应该包括一个去抖动子模块,用于K1按键的去抖动。

由于我们的发送模块可以采用多种数据格式,并受到使能信号的控制,所以该模块中还应该有一个发送控制子模块,它的功能如下:

1转发发送时钟信号——在使能信号有效的情况下,把系统传来发送时钟信号再转发给移位寄存器模块,若使能信号无效,则不转发,这可以用一个与非门实现。

2转送拨码开关信号——在不同的数据格式下,传给移位寄存器模块的拨码开关信号是不一样的,有些时候要屏蔽掉一些位,还要处理校验位。

1、移位寄存器模块的I/O信号

移位寄存器模块应该通过Txd信号线与RS-232电平转换芯片连接。

移位寄存器模块接收的控制信号是去抖动后的K1按键信号,它决定移位寄存器是接收并行数据,还是进行串行移位。

移位寄存器模块接收的并行数据共有9位,包括8位拨码开关信号和1位校验位信号。

发送模块所需要的时钟信号是经过转发的串行数据发送时钟信号。

2、去抖动模块的I/O信号

去抖动子模块,用于按键的去抖动,这比较简单,只要一个D触发器就可以完成:

触发器的数据输入端D接按键,CP端接50Hz时钟信号,触发器的输出信号就是我们需要的去抖动后的信号。

3、发送控制模块的I/O信号

发送控制模块的输入的控制信号就是系统传来的5位控制信号,包括使能信号(1位)、数据位位数控制信号(2位)、校验方式控制信号(2位)。

因为要转发发送时钟信号,所以要有1位时钟输入信号和1位时钟输出信号。

又因为要转送拨码开关信号,所以要有8位数据输入信号,而输出给移位寄存器模块的信号应该包含校验位,所以输出的数据信号有9位。

4、发送模块的逻辑框图

按照前面的分析,发送模块的逻辑框图如下:

VI、发送控制模块分析设计

1、发送控制模块的基本构成

发送控制模块要转发发送时钟信号,在使能信号有效的情况下,把系统传来发送时钟信号再转发给移位寄存器模块,若使能信号无效,则不转发,这可以用一个与非门实现。

该模块要产生校验位,这可以把拨码开关上的数据相互进行异或而成,因为数据位的位数也是可变的,所以要先把这些数据的一些位进行清0(通过译码器1和与门实现),然后再进行异或。

然后再根据校验的方式进行处理:

如果是奇校验则不处理,如果是偶校验则取反,如果是无校验则固定为“1”。

这里还需要另一个译码器(译码器2),它完成数据位高3位和校验位的处理。

2、发送控制模块的逻辑框图

按照前面的分析,发送控制模块的逻辑框图如下:

3、译码器1的逻辑功能

译码器1就是根据数据位控制信号输出相应的屏蔽信号:

当输入是00(8位数据位),则输出为111;当输入是01(7位数据位),则输出为011;当输入是10(6位数据位),则输出为001;当输入是11(5位数据位),则输出为000。

4、译码器2的逻辑功能

译码器2,根据数据位控制信号完成数据位高3位和校验位的处理。

当数据位控制信号是00(8位数据位),则输出为:

校验位、000;当数据位控制信号是01(7位数据位),则输出为:

1、校验位、00;当数据位控制信号是10(6位数据位),则输出为:

11、校验位、0;当数据位控制信号是00(5位数据位),则输出为:

111、校验位。

VII、发送移位寄存器模块分析设计

1、发送移位寄存器模块的基本构成

发送模块移位寄存器(并入串出)模块应该由11位移位寄存器构成,在(去抖动后)的K1按键控制下,或接收并行数据(K1信号为1),或进行移位(K1信号为0),最低位作为串行数据输出(Txd)。

在接收并行数据时,最低位的值固定为1,这是因为一旦接收了并行数据,Txd引脚上就马上出现最低位的信号,而这时显然还没到发送数据的时候,所以应该发出高电平的“空闲位”。

在接收并行数据时,而次低位的值固定为0,这是起始位。

在接收并行数据时,高9位是控制模块转送的拨码开关信号和校验位信号(当数据位不足8位时,由发送控制模块在高位上添加上“1”)。

在进行移位时,在发送时钟信号的控制下,11位数据向低位方向移动,最高位固定补“1”(形成停止位)。

2、发送移位寄存器模块的逻辑框图

程序:

moduleyiweijicun(clk_out,key1_out,jiaoyan,txd);

inputclk_out,key1_out;

input[8:

0]jiaoyan;

outputtxd;

reg[10:

0]send_reg;

always@(negedgeclk_out)

begin

if(key1_out==1'b1)

send_reg[10:

0]={1'b1,send_reg[10:

1]};

else

send_reg[10:

0]={jiaoyan,2'b01};

end

assigntxd=send_reg[0];//把最低位送到发送引脚上

endmodule

VIII、接收模块分析设计

1、接收模块的基本构成

由于在接收过程中,要防止干扰,因此在同一波特率的情况下,接收时钟的频率要高于发送时钟的频率,在我们的系统中,接收时钟的频率是波特率的3倍。

接收模块的也有一个移位寄存器子模块,它由10位构成,接收数据位、校验位和停止位。

这个移位寄存器是“串入并出”的,它负责在(经3分频后的)接收时钟信号控制下,接收串行数据,并把收到的数据送发光管显示。

即使在使能信号有效的情况下,上述移位寄存器也不总是进行移位操作的——只有发现了起始位,才开始进行移位,在收到停止位后,应结束移位操作。

直接连接Rxd引脚的是一个只有3位的移位寄存器(也是“串入并出”),它在(未分频的)接收时钟信号控制下,接收串行数据,把一位串行数据转换成3位并行数据。

在空闲状态下,如果发现连续两个0,则认为是收到了起始位,立即启动前述10位移位寄存器的移位操作。

在进行10位移位寄存器移位时,其串行输入信号不要直接从Rxd引脚上输入,而是从3位的移位寄存器的并行输出再经过“判多”电路模块而来,这个判多模块实现这样一个功能:

若3位输入中有2位或3位输入为1,则输出为1;否则输出为0。

由于我们的接收模块可以采用多种数据格式,并受到使能信号的控制,所以该模块中也应该有一个接收控制子模块,它的功能如下:

3转发接收时钟信号——在使能信号有效的情况下,把系统传来接收时钟信号再转发给移位寄存器模块,若使能信号无效,则不转发,这可以用一个与非门实现。

4控制10位移位寄存器的移位操作,即给它提供经过3分频的接收时钟信号。

检验接收的数据是否有差错,从而向蜂鸣器输出警示信号。

2、10位移位寄存器模块的I/O信号

10位移位寄存器模块显然有1位串行数据输入信号线。

该模块另外还应该有10位并行数据输出信号线。

该模块还应该有1个用于移位的接收时钟信号线。

3、3位移位寄存器模块的I/O信号

3位移位寄存器模块显然有1位串行数据输入信号线。

该模块另外还应该有3位并行数据输出信号线。

该模块还应该有1个用于移位的接收时钟信号线。

另外该模块还应该附加一个或门,用于判断起始位(连续收到两位低电平信号,可以认为是起始位)。

4、判多模块的I/O信号

在我们的系统中,判多电路模块用于减少干扰信号,它应有3位输入信号,输出是1位信号

5、接收控制模块的I/O信号

接收控制模块要负责转发接收时钟信号,因此它有1位接收时钟输入信号和1位接收时钟输出信号。

还要输出1位(经3分频后的)接收时钟输出信号。

接收控制模块输入的控制信号包括系统传来的5位控制信号,包括使能信号(1位)、数据位位数控制信号(2位)、校验方式控制信号(2位)。

接收控制模块输入的控制信号还有从3位移位寄存器传来的起始位检测信号。

接收控制模块还要对收到的数据进行检验,所以它应该输入由10位移位寄存器模块而来的数据信号。

接收控制模块还要把其中的数据位送到发光管上,所以还需要8位输出数据信号。

6、接收模块的逻辑框图

按照前面的分析,接收模块的逻辑框图如下:

 

//判多模块

modulepanduo(in,out);

input[2:

0]in;//三位数据输入

outputout;//1位数据输出

assignout=in[2]&in[1]|in[2]&in[0]|in[1]&in[0];

endmodule

IX、接收控制模块分析设计

1、接收控制模块的基本构成

接收控制模块主要由格雷码计数器、译码器、数据选择器、3分频器以及一些逻辑门电路构成

2、接收模块的逻辑框图

按照前面的分析,接收模块的逻辑框图如下:

3、格雷码计数器的逻辑功能

格雷码计数器在值为0时(即空闲状态),不进行计数,在收到检测信号时,计数器被异步置1,以后在时钟信号的作用下,计数值按照格雷码当方式不断加1;当加到与输入的比较值相同时,计数器清零。

4、译码器的逻辑功能

译码器有2组输出,第一组输出用于指示格雷码计数器的最大值,在没有校验位时,若数据位控制是00(8位数据位),则输出应是9的格雷码;若数据位控制是01(7位数据位),则输出应是8的格雷码;若数据位控制是10(6位数据位),则输出应是7的格雷码;若数据位控制是11(6位数据位),则输出应是6的格雷码。

如果有校验位,则输出应比上述值多1。

译码器第二组输出根据数据位控制信号输出相应的屏蔽信号:

在没有校验位时,若输入是00(8位数据位),则输出为1110;当输入是01(7位数据位),则输出为1100;当输入是10(6位数据位),则输出为1000;当输入是11(5位数据位),则输出为0000。

在有校验位时,若输入是00(8位数据位),则输出为1111;当输入是01(7位数据位),则输出为1110;当输入是10(6位数据位),则输出为1100;当输入是11(5位数据位),则输出为1000。

5、数据选择器1的逻辑功能

数据选择器1,用于在9位的数据/校验位当中,选择输出8位数据位:

在无校验时,高8位是数据位;在有校验时,低8位是数据位。

6、数据选择器2的逻辑功能

数据选择器2,用于选择3位信号中的1位输出:

当输入是0x时(无校验),则输出是1’b1;当输入是10时(偶校验),则输出是反向器的输出;当输入是0x时(奇校验),则输出是异或门的输出.

 

X、收发模块设计分析

1、收发模块的基本构成

收发模块负责进行串行数据的发送和接收,显然该收发模块又可以分成2个子模块:

发送模块(进行串行信号的发送)、接收模块(进行串行信号的接收)。

2、发送模块的I/O信号

发送模块应该通过Txd信号线与RS-232电平转换芯片连接。

发送模块接收的控制信号包括:

串行通信的使能信号、校验方式控制信号、数据位位数信号,共5位信号。

发送模块应该连接拨码开关和K1按键,以控制进行串行数据的发送,共9位信号。

发送模块所需要的时钟信号有:

50Hz信号(用于K1按键去抖动)、串行数据发送时钟信号(用于串行数据发送),共2位信号。

3、接收模块的I/O信号

接收应该通过Rxd信号线与RS-232电平转换芯片连接。

接收模块也应该从控制模块获得控制信号包括:

串行通信的使能信、校验方式控制信号、数据位位数信号,共5位信号。

接收模块应该连接8个发光管和蜂鸣器,用以显示接收到的串行数据,并警示数据的差错,共9位信号。

收发模块所需要的时钟信号有:

1000Hz信号(用于蜂鸣器的发声)、串行数据接收时钟信号(用于串行数据接收),共2位信号。

4、收发模块的逻辑框图

按照前面的分析,收发模块的逻辑框图如下:

四、程序错误

1、程序中的main中的函数名要和工程名一致;

2、程序出错,如果出现reform是多长,现在多长,则是宽度定义不对;

3、顶层模块调用小模块时输入输出口和小模块顺序不一致;

4、编译错误提示:

“Error:

Can’taccessJTAGchain;ErrorOperationfailed

这是电缆线没有接好或者损坏或者电源没打开;

5、引脚错误会出现显示乱码、顺序错误等问题,调试前应先仔细检查各个引脚,确保无误;

6、顶层模块调用要记得定义连线(wire…);

五、引脚锁定

单独数码管引脚锁定

8个LED灯引脚锁定

.四段数码管片选引脚锁定

.四段数码管引脚锁定

拨码开关引脚锁定

其他引脚锁定

K1、K2、K3、串行输入输出、蜂鸣器的引脚锁定

六、项目小结

这学期开始的第二个项目,感觉上就和之前的教学方案不同,这学期很系统的,把所学的知识合并一起来完成一个项目,这样有目的性的学习,让我更了解自己学的这个CPLD知识到底能用在哪些地方,怎么用,给同学指明了方向。

CPLD与单片机的思想不能等同,所以我们不能以C语言的思想考虑问题,就如:

三分频里面的,beginif(count==2'b10)count=2'b00;elsecount=count+1'b1;end用C语言思想可以反过来,但是在CPLD不一样,在CPLD里面应该考虑电路板怎么工作。

而CPLD与单片机不同之处是,用模块化的方法编写程序,

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

当前位置:首页 > 求职职场 > 简历

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

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