数字信息技术实验报告实验名称:接口互联实验 一、 实验项目接口互联实验:利用开发实验平台上的PS2、LCD1602、RS232实现接口之间的互联二、 实验目的1、 了解掌握串行协议标准2、 学习字符型液晶显示器的控制原理3、 学习ram的使用4、 设计字符型液晶显示控制器5、 掌握PS2键盘控制接口协议6、 通过编写程序实现PS2键盘控制接口的输入输出7、 熟悉各接口功能与逻辑的基础上打通各接口的数据联调8、 学习基本的接口程序设计方法9、 练习编写复杂状态机程序三、 实验内容1、 分别编译下载给定的UART_IN_HDL、PS2_LCD、PS2_RS232示例程序,仔细观察相关的实验现象,并描述观察到的现象2、 EDA主板PS2键盘上按下按键,一方面可以通过RS-232自动传送到主机的串口调试终端上,另一方面显示在LCD1602液晶上3、 PC主机通过RS232传送的字符能够显示在LCD1602液晶上4、 写出接口联调方案5、 打印修改、新加模块的源代码,或原理图6、 描述在实验板上观察到的现象,并截图四、 实验仪器计算机、USB-BLASTER下载线、数字系统实验箱、5V稳压电源。
五、 实验原理1、 LCD1602原理LCD1602液晶是字符型液晶,可以显示2行16个字液晶模块采用14针标准接口,电路连接如图1示,管脚映射如表1所示其中V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可通过一个10K的电位器调整对比度RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器RW为读写信号线,高电平时进行读操作,低电平时进行写操作当RS和RW均为低电平时可以写入指令或地址,当RS为低电平RW为高电平时为读忙信号,当RS为高电平RW为低电平时可以写入数据E为使能断,当E由高电平跳变为低电平时,液晶模块执行命令数据线为双向数据线LCD1602内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表2所示,每一个字符都有一个固定的代码,比如大写的“A”的代码是0100_0001B(41H),显示时模块把地址41H中的字符图形显示出来,就能看到字母“A”图1 LCD电路连接图表1 LCD管脚映射表表2 字符发生存储器CGROM存储的160个不同的点阵字符图形表2、 PS2原理PS2履行一种双向同步串行协议,即每次数据线上发送一位数据,并且每在时钟线上发一个脉冲就被读入,键盘可以发送数据到主机,而主机也可以发送数据到设备。
但主机总是在总线上有优先权,他可在任何时候抑制来自于键盘的通讯,只要把时钟拉低即可键盘电路连接和管脚映射如图2所示键盘的处理器花费很多时间来扫描或监视按键矩阵,如果他发现有键被按下释放或按住键盘将发送扫描码的信息包到计算机,扫描码有两种不同的类型:通码和断码当一个键被按住或按下就发送通码,当一个键被释放就发送断码每个键被分配了唯一的通码和断码当按键被释放以后,键盘会在扫描码前面加上一个“F0”作为松开信号,同时有的按键是extended按键,要在扫描码前加上“E0”,这种按键松开就加“E0F0” 信号是如何从键盘通过PS2端口的数据线输入的呢?首先键盘检测数据线和时钟线是否均为高,只有均为高时才可以写数据,从键盘发送到主机的数据在时钟信号的下降沿的时候被读取键盘主要使用一种每帧包含11位的串行协议:第一位是起始位,始终为“0”;接下来是八位数据,排列顺序是由低到高,再后是奇偶校验位,最后是结束位,始终为“1”图2 EDA主板上键盘电路连接图表3 EDA主板上键盘管脚映射图器件名网络名FPGA映射管脚PS2_KDATAKEY0134PS2_KCLKKclk1333、 RS232串口控制器原理所谓串行通信是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。
由于CPU(FPGA就相当于一个CPU)与接口之间安并行方式传输,接口与外设之间按串行方式传输因此,在串行接口中,必须要有接收移位寄存器(串→并)和发送移位寄存器(并→串),典型的串行接口的结构如图3所示图3 串行接口的结构图在数据的输入过程中,数据1位1位地从外设进入接口的接收移位寄存器CPU从数据输入寄存器中读取接收到的字符接收移位寄存器的移位速度由接收时钟确定在数据输出的过程中,CPU把要输出的字符并行地送入数据输出寄存器,数据输出寄存器的内容传输到发送移位寄存器,然后由发送移位寄存器移位,把数据1位1位地送到外设发送移位寄存器的移位速度由发送时钟确定接口中的控制寄存器用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接口的工作方式能够完成上述“串并”转换功能的电路,通常称为“通用异步收发器”(UART)包括:双缓存发送数据寄存器,并行转串行装置,双缓存输入数据寄存器,串行转并行装置RS232通讯协议基本结构起始位低,停止位高i. 接收机设计可以用16倍时钟确定起始位、停止位具体方法是设计两个输入寄存器rxd1、rxd2:“rxd1<=rxd;rxd2<=rxd1;”当16倍时钟检测到rxd1==0并且rxd2==1时可以确定下降沿发生(检测到起始位)。
当然,为了确保接收数据的正确性可以用16倍时钟对数据位进行采样ii. 发送机设计同理需要设计两个输出寄存器,wrn1、wrn2当16倍时钟检测到wrn1==0并且wrn2==1时可以确定下降沿发生(起始位开始)Wrn可以由信号来控制,这样按下复位信号才有数据发送出来RS232电路连接及管脚映射表如图4所示图4 RS232电路连接及管脚映射表六、 实验步骤1、 安装USB-BLASTER编程工具;2、 在WINDOWS界面双击QuatusII图标,进入QuatusII开发环境;3、 单击Files菜单下的New Project Wizard,按照向导里面的介绍新建一个工程文件,并把它保存到指定路径下面;4、 单击Files菜单下的New,选择Design Files下的VHDL File后单击OK就能创建一个后缀名为.vhd的文本文件另外,如果已经有文本存在,可以在Files菜单里面的Open来选择你的文件5、 用VHDL语言编辑程序;6、 单击Processing下面的Compiler tool编译程序;7、 在QuatusII平台上进行波形仿真单击Files菜单下的New,选择Verification/Debugging Files下的Vector Waveform File后单击OK就能创建一个后缀名为.vwf的文本文件,绘制相应的输入波形文件,根据输入波形仿真输出波形;8、 单击Assignments下的device选择器件;9、 单击Assignments下的pins进行管脚分配;10、 单击Processing下面的Compiler tool编译程序;11、 单击Tools下面的Programmer,选择USB-BLASTER下载工具,将后缀为.sof的文件下载到FPGA芯片中,仔细观察实验板上的现象,测试验证程序。
七、 实验结果表1 实验现象 实验 实验现象字符型液晶显示控制器 在键盘上输入字符,LCD1602会显示相应的字符 PS2键盘控制接口协议在键盘上输入字符,电脑的串口助手界面会显示相应字符 RS232接口 按下FPGA复位键,串口助手会显示一个网址如下图所示八、 数据分析 通过VHDL语言完成了对电路的设计设计出了电路所具有的功能,在时钟的激励下完成电路功能的实现九、 实验体会VHDL语言是一种硬件编程语言,与平时所用的C语言有相似之处也有其自身的优势,对于硬件仿真来讲,可以避免实际操作中较多的的问题实验过程虽然出现很多错误,但我们了解了关于QuarusⅡ软件和VHDL编程的基本理论,收获很大关于FPGA,他的片上编程功能较之前所学的单片机,ARM更加强大,但相应地操作也更加复杂考虑到公司仍有部分低层及高层人员的补充,因此在选择招聘渠道供应商的附加值时以配送普工现场招聘会和高端人才交流会为佳,另外根据供应商平台实力,若能给公司提供合适的猎头服务也应当纳入甄选范畴。