SAP智能制造,为企业带来的无限机遇
288
2024-01-31
引言 SOPC(System On Programmable Chip,可编程的片上系统)是Altera公司提出的一种灵活、高效的SOC解决方案它将处理器、存储器、I/O口等系统设计 需要的功能模块集成到一个可编程器件上,构成一个可编程的片上系统。
SOPC是PLD和ASIC技术融合的结果,代表了半导体产业未来的发展方向 Altera公司的NIos II核是目前最具代表性的软核嵌入式系统处理器,本文描述的SOPC系统以 Altera NiosII为基础,利用SOPC Builder对Nios II及其外围系统进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足系统设计的需求。
设计课题的确立 本文所描述的SOPC系统需要完成以下功能: 1.利用PS2接口的键盘作为设计的信号输入和外部控制电路部分; 2.利用VGA显示接口作为设计的信号输出和显示电路部分; 3.嵌入处理器 + 应用软件。
根据以上要求,确立要完成本文设计的3个功能模型,分别是:兼容标准键盘的PS2控制接口逻辑;基于Avalon总线的VGA显示接口逻辑,以及NiosII嵌入式处理器和PS2/VGA驱动程序系统的组成和结构。
在SOPCBuilder中构造整个系统的连接,包括基本的SOPC系统和自定义外设基本SOPC系统的核心是NiosII处理器Core,它还包含Avalon三态总线,以及挂在总线上的外部存储设备接口,包括SRAM(或SDRAM)控制接口及Flash控制接口;以及定时计数Timer和调试Jtag_Uart模块。
而本课题设计的关键就是自定义的外设接口——基于Avalon总线协议的PS2接口和VGA控制接口 基于Avalon总线协议的PS2控制接口设计 PS2控制接口协议 PS2设备接口多用于当今的鼠标和键盘设计,它是由IBM 开发并最早出现在IBM 技术参考手册里。
PS2 鼠标和键盘遵循双向同步串行协议,每次数据线上发送一位数据,时钟线上的脉冲就被读入键盘/鼠标可以发送数据到主机,同样主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,而只需把时钟拉低即可。
从键盘/鼠标发送到主机的数据,在时钟信号的下降沿被读取;从主机发送到键盘/鼠标的数据在上升沿被读取不管通讯的方向怎样,键盘/鼠标总是产生时钟信号如果主机要发送数据,它必须先告诉设备开始产生时钟信号PS2设备最大的时钟频率是33kHz 而大多数设备工作在10-20kHz。
设备到主机的通讯过程如图2所示: 所有数据安排在字节中,每个字节为一帧,包含了11/12 个位,这些位的含义如下:1个起始位,总是为0;8个数据位,低位在前;1个校验位,奇校验;1个停止位,总是为1;1个应答位,仅在主机对设备的通讯中出现。
键盘上包含了一个大型的按键矩阵,它们是由“键盘编码器”来监视的监视哪些按键被按下或释放了,并在适当的时候传送到主机而主板上包含了一个“键盘控制器”负责解码所有来自键盘的数据, 并告诉软件什么事件发生。
在主机和键盘之间的通讯使用IBM 的协议,最初IBM 使用Intel8048 微处理器作为它的键盘编码器,而使用Intel8042 微控制器作为它的键盘控制器,这些现已被兼容设备取代,并整合到主板的芯片组中。
键盘的处理器花费很多的时间来扫描或监视按键矩阵如果它发现有键被按下、释放或按住,键盘将发送“扫描码”的信息包到计算机扫描码有两种不同的类型:“通码”和“断码”当一个键被按下或按住就发送通码;当一个键被释放就发送断码。
每个按键被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以测定是哪个按键 基于Avalon总线的键盘控制器的FPGA实现 基于Avalon总线的键盘控制器的实现,需模拟Intel8042的功能时序,完成键盘控制器的功能模型的建立,并完成其RTL代码。
本键盘控制器,不仅完成8042对键盘扫描码的接收功能,还要把扫描码转换为处理器能够识别的ASCII码 从键盘读数据:当从键盘收到有效的扫描码就把它放置在输入缓冲区,IBF(输入缓冲区满)标志被设置,产生IRQ1。
如果中断是使能,IRQ1将激活键盘驱动程序,它指向0x09中断向量驱动程序将从Avalon_PS2_BASE端口读取ASCII码这个动作会释放IRQ1并复位IBF标志接着ASCII被驱动程序处理如下图3显示接收“c”通码的时序,经过11个PS2_CLK接收到“c”的扫描码为“0x21”,同时扫描码被转换为ASCII码,为“0x63”。
图4,模拟了键盘发送一个大写“A”的数据传输时序,其过程为SHIFT通码(0x12),“A”通码(0x1c),“A”断码(0xf0,0x1c),SHIFT断码(0xf0,0x12)此过程中加入了两个标识位,SHIFT标识(rx_shift_key_on)和断码标识(rx_released),用以显示SHIFT是否被按下,及发送的是通码或断码。
往键盘写数据:当你写数据到键盘控制器的输出缓冲区,控制器设置OBF(输出缓冲区满)标志并处理数据控制器将发送这个数据到键盘并等待一个回应如果键盘没有接收或在指定时间内没有回应,相应的超时标志就会被设置。
VGA原理 VGA接口主要有五个信号线,分别为R、G、B、vsync(场同步)、hsync(行同步)信号Red、Green、Blue 就是大家熟知的三原色,由RGB的电压差便可以产生出所有的颜色如果R、G、B各用一个bit来控制,也就是只有0、1两种电压准位,则所能形成的颜色种类只有8种。
若每一种颜色能用多个bit来分出不同准位的电压差,颜色就能多样化呈现vsync和hsync用作显示器的同步信号,依据垂直与水平更新率的不同,不断送出固定频率的信号输出,此时就可以在屏幕上正确的显示色彩 屏幕的显示方式,是从左边最上角的第一个像素开始,然后依次向右显示下一个像素,到显示完第一列的最后一个像素,就跳到第二列的第一个像素继续开始显示。
一直到整个屏幕都显示完毕时,回到原点,如此能不断的刷新画面对上述5个信号的时序驱动,VGA显示器要求严格遵循“VGA工业标准”,即640×480×60Hz模式下图给出VGA行扫描、场扫描的时序 这是每一行扫描所需的时间,3.77μs(29.88μs - 26.11μs)是hsync必需降为0的时间,1.89μs是后置准备时间,0.94μs是前置准备时间。
而25.17μs则是像素显示时间,颜色的变化都要在这个时间内显示,在该时间域外,R、G、B三根信号线都一定置0,否则将无法正确显示画面
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~