基于XilinxMicroBlaze的嵌入式IO系统设计与实现_阮芳
- 格式:pdf
- 大小:1.22 MB
- 文档页数:5
Xilinx Microblaze Bootloader实现方法文:Hello,panda 一般而言,Xilinx Microblaze会被用来在系统中做一些控制类和简单接口的辅助性工作,比如运行IIC、SPI、UART之类的低速接口驱动,对FPGA逻辑功能模块初始化配置及做些辅助计算等等。
类程序的代码量普遍不大,常常在十几KB到几时KB之间,因此对存储的需求通常也不是太高,使用FPGA内部RAM 资源便已经够用。
那么,当Microblaze需要运行文件系统、USB HCD、网络协议栈甚至是操作系统时,代码量可能会高达几MB甚至是几十MB的规模,此时程序就必须在外部存储器运行了。
本文以将外部QSPI Flash中存储的镜像加载到外部DDR为例,讲一讲Microblaze Bootloader的实现方法。
1Microblaze BootloaderMicroblaze的工作原理和所有的通用处理器一样,这里不用赘述。
我们一般情况下会将.elf代码、FPGA bit文件和.imm RAM初始化文件合成一个download.bit文件烧写到外部Flash中去。
这里.elf的可执行代码就变成了FPGA Block RAM的初始化值,复位释放后即可执行。
想必聊到这里大家就已经明白Microblaze Bootloader该如何实现了:在有限空间的Block RAM里面执行一小段代码,负责初始化必要的外设并将Flash里面的其他代码搬运到外部存储器中执行。
这种原理和所有的通用处理器是类似的,这里的Block RAM就相当于是ARM 之类通用处理器的片上RAM(OCM)资源,执行的这一小段代码就相当于第一季BootLoader(FSBL)。
以下所有的示例都是在Xilinx XC7K325 FPGA上进行验证。
开发环境为Vivado 2015.2。
硬件平台包含一片256Mbit(32M字节)的Spansion QSPI Flash,一片海力士16bit位宽的容量为512MB的DDR3。
基于MicroBlaze的可重构嵌入式系统设计摘要:基于MicroBlaze软核设计了一个可重构嵌入式系统,可完成基于嵌入式Web服务器的远程监控。
介绍了Xilinx微处理器软核MicroBlaze的定制、硬件平台的搭建及uCLinux操作系统的剪裁,最后给出了实现远程监控的程序流程图。
关键词:可重构MicroBlaze软核;嵌入式系统;XilinxFPGA中图分类号:TP39 文献标识码:A 文章编号:1007-9599 (2010) 05-0000-02Design of Embedded Refactoring System Based on MicroBlazeTang Pei,Huang Peng(Yangtze University,School of Computer Science,Jingzhou 434023,China) Abstract:A Refactoring embedded system based on the MicroBlaze soft-core can be used to complete the remote monitoring based on embedded Web server.In this thesis ,We'll introduce some information of Xilinx MicroBlaze soft-core microprocessor and the way of customizing the hardware platform and How to cut the operati ng system uCLinux.At last,We'll give the remote monitoring program flow chart.Keywords:Refactoring MicroBlaze soft-core;Embedded systems;XilinxFPGA可重构技术是目前计算机系统研究中的一个新热点,是指依靠软件编程来改变系统的硬件结构,以适应不同应用的一种技术,也称为自适应计算平台。
基于MicroBlaze软核的嵌入式最小系统孙丰祥;程玉伟;胡恩俊;郑昌露【摘要】The MicroBlaze was used to construct an embedded minimum system,and the method to design the system’s hardware and software was presented,including the way of registering IP core and the introduction of Bootloader flow chart,μCOSII operating system transplanted in the target board,debugging software communi-cation via serial port and host computer and the communication process.The communication result shows that this system can meet the requirement of product development.%采用MicroBlaze软核构建嵌入式最小系统,给出其硬件设计方法,介绍了自主定制用户IP 核的方法。
同时给出了最小系统的软件设计方法和 Bootloader软件流程图;加载μCOSII操作系统;通过串口与上位机调试软件通信;详细介绍了通信的流程,正确的通信结果证明最小系统适合产品开发的需要。
【期刊名称】《化工自动化及仪表》【年(卷),期】2014(000)008【总页数】3页(P946-948)【关键词】最小系统;MicroBlaze;IP 核;Bootloader;串口通信【作者】孙丰祥;程玉伟;胡恩俊;郑昌露【作者单位】国电南京自动化股份有限公司,南京 210061;国电南京自动化股份有限公司,南京 210061;国电南京自动化股份有限公司,南京 210061;国电南京自动化股份有限公司,南京 210061【正文语种】中文【中图分类】TH165Xilinx首创了现场可编程逻辑阵列(FPGA)这一创新性的技术,随着FPGA技术的发展,其逻辑容量逐步增大而成本却越来越低。
基于MicroBlaze的可重构嵌入式系统设计
汤佩;黄鹏
【期刊名称】《计算机光盘软件与应用》
【年(卷),期】2010(000)005
【摘要】基于MicroBlaze软核设计了一个可重构嵌入式系统,可完成基于嵌入式Web服务器的远程监控.介绍了Xilinx微处理器软核MicroBlaze的定制、硬件平台的搭建及uCLinux操作系统的剪裁,最后给出了实现远程监控的程序流程图.【总页数】2页(P149-150)
【作者】汤佩;黄鹏
【作者单位】长江大学计算机科学学院,湖北荆州434023;长江大学计算机科学学院,湖北荆州434023
【正文语种】中文
【中图分类】TP39
【相关文献】
1.赛灵思推出新型MICROBLAZE嵌入式套件可使嵌入式系统设计快速启动 [J],
2.基于MicroBlaze的嵌入式系统设计 [J], 赵泽才;常青
3.基于FPGA动态自重构的嵌入式系统设计 [J], 李鹏飞;唐祯安;王开宇;巢明;曲贺
4.基于Microblaze软核的嵌入式系统设计 [J], 单超;王萍;朱爱民;万娟
5.IP-Microblaze在嵌入式系统设计中的应用 [J], 伞景辉;薛以辉;孙广富
因版权原因,仅展示原文概要,查看原文内容请购买。
FPGA创新应用 2012.1前言当前Xilinx 新版本ISE 系列产品基于AXI 总线的趋势越来越明显,AXI 总线是ARM 高级微控制器总线结构的一部分,拥有高产率、高灵活、广泛IP 可用性等优势。
MicroBlaze 多核处理器可以实现彼此之间快速通讯以及并行处理计算等,可以提高处理问题的速度,具有良好的可行性和实用性,而两者的结合是当前开发的新发展,通过Xilinx ISE 系列软件可以很方便地进行硬件设计(XPS中)以及相应的软件(SDK 中)设计。
FPGA 设计相比ARM 设计也存在优势,不是固定的芯片实现,也是可以通过用户自定义IP 核,可以嵌入所希望的系统来实现相应的功能[1]。
因此,选择设计基于AXI 总线的基于AXI总线的MicroBlaze双核SoPC 系统设计Design of Dual-core SoPC System Based on Xilinx MicroBlaze with AXI Bus 杨定定 施慧彬 南京航空航天大学 计算机科学与技术学院(江苏 南京210016)摘要:目的是利用嵌入在Xilinx FPGA中的MicroBlaze核实现基于AXI总线的双核嵌入式系统设计以及共享实现LED灯的时控。
对于共享实现LED灯时控的方法是通过在两个低速总线之间加入一个axi2axi_connector实现axilite总线上的slave共享。
对于实现双核之间的通信主要方法是利用mailbox和mutex完成核间通信。
硬件平台采用的是Xilinx FPGA Spartan -6 Atlys板,软件平台是Xilinx EDK,主要使用的是XPS(硬件设计)和SDK(软件设计),开发出了运行在FPGA上的基于MicroBlaze双核的嵌入式系统,得出了核间通信的可行性以及共享slave实现LED灯时控的实用性。
关键字:AXI总线;MicroBlaze双核;核间通信;LED灯DOI: 10.3969/j.issn.1005-5517.2012.1.017MicroBlaze 双核嵌入式系统是当前的开发趋势,同时Xilinx 的Atlys 板为实验的可行性提供了硬件平台。
基于Microblaze软核的嵌入式系统设计单超;王萍;朱爱民;万娟【期刊名称】《单片机与嵌入式系统应用》【年(卷),期】2011(11)3【摘要】The paper details the whole developing flow on Xilinx microblaze, including hardware platform developing, software platform developing, embedded operation system loading and FPGA configuration. Embedded system design using FPGA soft core will become popular in the near future.%结合实际项目的开发经验,详细讲解了基于Xilinx Microblaze软核开发的整个流程,包括硬件平台搭建、软件平台开发、嵌入式操作系统的加载以及用非易失性存储设备对FPGA进行上电配置等内容.利用FPGA软核进行嵌入式系统开发,将得到越来越多的关注和应用.【总页数】4页(P18-21)【作者】单超;王萍;朱爱民;万娟【作者单位】深圳电器公司博士后工作站,深圳518001;陆军航空兵学院;陆军航空兵学院;深圳电器公司博士后工作站,深圳518001;中国人民解放军69036部队【正文语种】中文【中图分类】TP36【相关文献】1.基于FPGA MicroBlaze软核实现的以太网设计方法 [J], 王晓鹏2.基于MicroBlaze软核的嵌入式最小系统 [J], 孙丰祥;程玉伟;胡恩俊;郑昌露3.基于MicroBlaze软核的等精度频率计设计 [J], 韩瑞;张莹莹;杨文;陈华宝4.基于MicroBlaze软核的任意波形发生器设计 [J], 于海春;顾新宇;陈华宝5.基于FPGA MicroBlaze软核实现的以太网设计方法 [J], 王晓鹏因版权原因,仅展示原文概要,查看原文内容请购买。
基于MicroBlaze嵌入式平台的蓝牙五子棋对战游戏系统设计余超剑;杨明;万友铭【摘要】设计了一款基于MicroBlaze嵌入式平台,利用无线蓝牙通信技术实现Android智能手机控制的五子棋对战游戏系统,该系统由XC7A100T-1CSG324C 芯片、HC-5蓝牙模块以及显示器组成.结果表明:该系统操作方便和可靠性强,具有一定的应用前景.【期刊名称】《宁波职业技术学院学报》【年(卷),期】2016(020)003【总页数】4页(P86-89)【关键词】MicroBlaze嵌入式平台;蓝牙;Android;五子棋【作者】余超剑;杨明;万友铭【作者单位】华中科技大学电子信息与通信学院, 武汉 430074;华中科技大学电子信息与通信学院, 武汉 430074;华中科技大学电子信息与通信学院, 武汉430074【正文语种】中文【中图分类】TN929.5随着物联网和游戏产业的快速发展和智能手机的不断普及,目前工业和民用的很多串口设备连接上了手机,以便通过智能手机对串口设备实现高效的信息交互,然而传统方式的构建比较复杂,具有施工成本高、不易扩展的缺点。
本文提出一种基于MicroBlaze嵌入式平台和蓝牙无线通信技术的五子棋对战游戏的设计方案,通过基于XC7A100T-1CSG324C芯片和Android智能手机的无线通信,再结合蓝牙无线通信技术,可以实现在显示器上进行五子棋对战游戏。
为了提高蓝牙五子棋对战系统的灵活性和可扩展性,使蓝牙无线控制更加模块化,本系统以XC7A100T-1CSG324C芯片为核心,将无线蓝牙与串口融合,并与智能手机相连接,极大地拓宽了串口功能。
系统的功能结构如图1所示。
系统中XC7A100T-1CSG324C芯片一方面通过HC-5蓝牙模块与Android智能手机进行数据通信;另一方面,通过串口方式与HC-5蓝牙模块保持数据通信。
当蓝牙模块建立与智能手机的连接后,带有蓝牙通信功能的控制终端加入通信网络,这样就保证了Android智能手机将五子棋的控制命令先由无线蓝牙方式发送至HC-5蓝牙模块,然后通过XC7A100T-1CSG324C芯片所支持的无线蓝牙与串口之间的透传功能,将收到的数据通过串口传输至XC7A100T-1CSG324C芯片,并最终通过无线蓝牙通信方式实现对五子棋对战游戏系统的控制。
DOI:10.19551/ki.issn1672-9129.2021.12.036MicroBlaze的开发与实现王安印㊀赵㊀蔚(零八一电子集团有限公司㊀四川㊀成都㊀611731)摘要:嵌入式系统随着需求和事件的推移而变化,FPGA强大的逻辑开发和实时性得到了快速的推广和应用㊂随着处理能力的提高及应用范围的扩大,FPGA纯硬件语言开发灵活性有些捉襟见肘㊂对于一些简单的算术运算都需要耗费较多的逻辑单元,因此在FPGA中能有一个C语言开发的处理器被提上了日程㊂Xilinx公司推出的MicroBlaze以及Alter公司推出的Nios II进入各位开发者的眼帘㊂本文主要介绍Xilinx公司推出的MicroBlaze开发㊂关键词:MicroBlaze;开发;实现中图分类号:TP332㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1672-9129(2021)12-0036-01㊀㊀1㊀引言MicroBlaze是Xilinx公司开发的基于FPGA器件的处理器,FPGA中主要是以硬件描述语言为基础的,对于一些简单的浮点和定点算法,难免耗费大量资源㊂因此Microblaze 应运而生,MicroBlaze因类似微处理器且以c语言的开发而被称为软核㊂软核的出现在大量的逻辑电路中弥补了少量的算术运算的空白㊂本文介绍了MicroBlaze软核的工作原理及其嵌入式系统开发流程,指出了MicroBlaze软核的应用方向及优势㊂随着软核的不断发展,以及软核性能的不断提高,基于FPGA的嵌入式系统在设计时对于系统的性能,功耗和个性化的定制等方面的要求也在不断提高㊂软核的出现正好符合这类的要求,软核通过以IP核的方式进行配置,可以嵌入到FPGA中,在设计系统时通过结合其他外设IP 核,可以快速方便地完成整个系统设计㊂这样设计的系统不仅缩小了电路板的面积,降低了功耗,而且具有运行速度快㊁占用资源少㊁可配置性强等优点㊂SDK中还带有一些外设接口的IP核,如LMB㊁OPB总线接口㊁外部存储控制器㊁SDRAM控制器㊁UART㊁中断控制器㊁定时器等㊂利用这些资源,可以构建一个较为完善的嵌入式微处理器系统㊂2㊀MicroBlaze软核的工作原理MicroBlaze和其它外设IP核一起,可以完成可编程系统芯片(SOPC)的设计㊂MicroBlaze处理器采用RISC架构和哈佛结构的32位指令和数据总线,可以全速执行存储在片上存储器和外部存储器中的程序,并和其它外设IP核一起,可以完成可编程系统芯片(SOPC)的设计㊂可以全速执行存储在片上存储器和外部存储器中的程序,并访问其的数据因此具有下面特点:a)32个32位通用寄存器和2个专用寄存器b)32位指令系统,支持2个操作数和两种寻址方式c)分离的32位指令和数据总线d)通过存储器总线可以访问片内存储器e)具有高速指令和数据缓存,三级流水线结构f)具有硬件调试模块g)带8个输入输出链路接口3开发流程a)创建和配置IP核从IP目录中选择IP核,双击选中的IP核并对其配置㊂软核参数在设置时被分成八个部分:板级参数㊁处理器参数㊁串口㊁FIT㊁PIT㊁通用输出(GPO)㊁通用输入(GPI)㊁中断㊂参考硬件信息配置这些参数,人机界面交互相对来说非常方便㊂只有在工程中选择硬件平台后板级信息才可见,此选项可配置软核的复位㊁串口㊁四路GPIO;处理器参数项可配置输入系统时钟,内存大小㊁校验码㊁处理器优化㊁总线使能等参数;串口参数配置包含:波特率㊁数据位宽㊁奇偶校验等;FIT设置计数值及产生中断;PIT设置计数器的位数㊁量化㊁产生中断;GPI和GPO可配置四路高达32位宽的数据及初始值;中断栏可配置中断的个数㊁极性(电平或沿触发)和同步等㊂b)开发步骤以Vivado为例其设计步骤如下:1)创建带有Microblaze处理器的IP设计:在工作流导向面板中的IP Integrator中点击Create Block design,找到Microblaze,添加到Block中,双击Microblaze的Block,开始配置软核㊂2)在Block Design中点击Run Block Automation,IP集成工具自动添加一些必须的IP核,并且将它们的引脚对应连接好,这就完成了一个简单的软核系统㊂3)在Block Design面板下,展开Design Source,在左侧的工作流面板中的IP工具下,单击Generate Block Design㊂在Design Sources中,右键design,选择创建HDL封装㊂4)完成了设计,就可以进行综合㊁实现㊁生成bit文件㊂在菜单栏选择File–>Export–>Export Hardware for SDK,弹出对话框,导出硬件定义和比特流,并打开SDK,编写软件㊂5)也可以在SDK中导出elf文件到Vivado中进行综合㊂在Vivado中开发的程序为硬件描述语言(VHDL或Ver-ilog),而SDK中开发的程序语言为C或C++㊂由于最后在芯片的Flash中只能加载一个文件,故他们之间是通过硬件描述文件或elf文件来协作的㊂总结:在FPGA的开发过程中,有了MicroBlaze的帮助,性能和功能以及灵活性得到了极大的提高,硬件资源也得到了合理的利用㊂真正实现了SOC,取代了传统的CPU,运行可靠稳定㊂参考文献:[1]叶肇晋等著基于Xilinx FPGA片上嵌入式系统的用户IP开发,西安电子科技大学出版社,2008[2]赵峰FPGA上的嵌入式系统开发设计实例,西安电子科技大学出版社,2008㊃63㊃。
第31卷 第2期2008年4月电子器件Ch inese Jo u rnal Of Electro n Devi cesVol .31 No .2Apr .2008Design and Implementation of Embedded I /O System Based on MicroBlazeRU A N F ang 1,FE NG Yong -xin1,2*1.S chool o f In for ma tion S cience and En gineer ing ,S hen yang Lig on g Univer sity ,S hen yang 110168,China ;munication &Networ k E ngineer in g C enter ,Shenyang Ligong University ,S henyan g 110168,Ch inaA bstract :The MicroBlaze embedded so ft -co re is of RISC architecture ,optimized for implementatio n in Xil -inx field prog ram mable g ate arrays (FPGA ),using w hich the embedded system can be desig ned .The archi -tecture of M icroBlaze is introduced and the procedure o f embedded system dev elo pment is analyzed based on MicroBlaze .The w hole desig n scheme is brought forw ard abo ut embedded I /O system ,and the key pro blem s involved in the desig n are discussed .Key words :MicroBlaze ;Em bedded I /O Sy stem ;Softw are -H ardw are Co -Design EEACC :1130B基于Xilinx MicroBlaze 的嵌入式I /O 系统设计与实现阮 芳1,冯永新1,2*1.沈阳理工大学信息科学与工程学院,沈阳110168;2.沈阳理工大学通信与网络工程中心,沈阳110168收稿日期:2007-06-18作者简介:阮 芳(1981-),女,硕士研究生,研究方向为嵌入式系统设计,rua nfang703@yahoo .com .cn ;冯永新(1974-),女,副院长,硕士生导师,研究方向为扩频通信技术及应用、网络管理、移动无线网络组网技术。
摘 要:M icroBlaze 是Xilinx 公司推出的基于RISC 架构的32bit IP 内核,用它可以进行基于F PG A 的嵌入式系统设计。
本文介绍了M icr oBlaze 的体系结构,分析了基于M icro Blaze 的嵌入式系统的开发方法,并采用软硬件协同设计的思想提出了利用其进行嵌入式I /O 系统设计的方案,给出了详细的软、硬件设计实现办法,并讨论了其中的关键技术问题。
关键词:M icroBlaze ;嵌入式I /O 系统;软硬件协同设计中图分类号:TP36 文献标识码:A 文章编号:1005-9490(2008)02-0626-05 随着微电子技术的飞速发展及数字化时代的到来,嵌入式产品获得了巨大的发展机遇,应用范围遍及航天、通信、电子应用、交通、工业控制等各个领域。
与此同时,巨大的需求数量与应用复杂性的不断增加也对嵌入式微处理器提出了新的挑战。
FPGA 可以把整个数字系统集成在一个芯片上,具有体积小、功耗低、可靠性高、可重复利用等优点,已在嵌入式系统开发中得到了广泛的应用[1]。
对于比较复杂的系统,仅仅使用基于硬件的FPGA 对其进行协调控制还是比较困难的,因此通常把一个微处理器内核嵌入到FPGA 芯片中,采用软硬件协同设计的技术,不仅使得对设备的控制更加灵活,调试也更加方便,并缩短了开发周期。
MicroBlaze [2]正是由Xilinx 公司推出的这样一款32bit RISC 微处理器IP 核,具有很高的可配置度,可以将外部存储器,液晶显示屏、PS /2口、串口、以太网控制器等外部设备连接在一起并协调它们的工作,因此非常适合设计针对网络、电信、数据通信等应用背景的复杂嵌入式系统。
作为嵌入式系统的重要组成部分,I /O 系统起着很重要的作用。
在便携式的人机交互接口中,键盘与LCD 液晶显示器在嵌入式设备中得到了广泛应用。
对于基于FPGA 的嵌入式系统而言,应用MicroBlaze 进行嵌入式设计时有其独特的设计方法和设计技巧。
本文以嵌入式I /O 系统为例,介绍了利用MicroBlaze 进行嵌入式系统设计开发的方法,给出了一种输入/输出系统的设计实现方案,分析了其开发流程,并讨论了设计开发过程中相应的软硬件设计问题。
1 嵌入式I /O 系统总体设计1.1 MicroBlaze 的体系结构[2]MicroBlaze 是Xilinx 推出的32位微处理器,采用RISC 指令集和H arvard 体系结构,拥有分立的32位指令总线和32位数据总线;可以访问片内存储器和片外存储器;并在VII 以上系列芯片中使用了硬件乘法器,使得数据处理运算更为高效。
Microblaze 的内核结构如图1所示,其内部有32个通用寄存器和5个特殊寄存器(均为32位);它以大端、位翻转的格式来描述数据,支持的数据类型有字、半字、字节;所有指令字长为32位,采用三级流水线结构;处理器有三个访问存储器的接口:Lo cal M emo ry Bus (LM B )、On -Chip peripheral Bus (OPB )、Xilinx Cache Link (XC L )。
图1 M icroBlaze 内核结构框图1.2 系统的设计开发流程在嵌入式系统的开发中,软硬件协同设计(so ftw are -hardw are co -desig n )的方法可以降低开发成本,缩短开发时间,并使得设计更加灵活,从而逐步取代了传统的设计流程。
其中涉及到的关键问题是系统资源的规划和利用,所以在系统设计前首先要考虑系统功能的软硬件划分,清楚的界定系统内部各项功能的最终实现形式;而在进行软硬件分割时,若想达到系统性能的最佳化,就必须考虑到各相辅功能间数据交换的方便性以及不同功能彼此的同步化,确保系统在执行时能满足所需的时间限制(timing constraint )[3]。
在本系统的设计开发过程中就采用了软硬件协同设计的方法,其流程如图2所示。
图2 基于M icro Blaze 嵌入式系统开发流程2 系统的关键硬件模块实现2.1 PS /2键盘模块的实现(1)PS /2通信协议PS /2通信协议是一种双向同步串行通信协议[4]。
通信的双方通过时钟引脚(ps clk )同步,并通过数据引脚(ps data )交换数据。
任何一方如果想抑制另外一方通信时,只需要把时钟引脚(ps clk )拉到低电平即可。
在主控机(比如微处理器或计算机)和PS /2键盘之间进行通信时,主控机必须做主机,也就是说,主控机可以抑制PS /2键盘发送数据,而PS /2键盘则不会抑制主控机发送数据。
从键盘发送到主控机的数据在时钟信号的下降沿被读取,从主控机发送到键盘的数据在上升沿被读取。
不管通信方向怎样,键盘总是产生时钟信号。
如果主控机要发送数据,它必须首先告诉设备开始产生时钟信号。
一般数据传输的最大时钟频率时33kH z ,大多数PS /2设备工作在10~20kH z 。
推荐值在15kH z 左右,即:ps clk 信号高、低电平的持续时间都为40μs 。
所有数据安排在字节中,每个字节为一帧,包含11~12个位。
具体含义如表1所示。
表1 PS /2通信数据帧格式1个起始位逻辑08个数据位(LSB )低位在前1个奇偶校验位奇校验1个停止位逻辑01个应答位仅用在主机对设备的通信中 对数据位的校验采用奇校验的方式。
数据线上的数据在发送时总是低位在前,高位在后,每一位数据的持续时间为60~100μs 。
一个PS /2设备到主控机的通信时序如图3所示。
(2)键盘扫描码对PS /2键盘进行操作所产生的信息用按键的扫描码来表示[5]。
键盘接口中的微处理器负责扫描627第2期阮 芳,冯永新:基于Xilinx MicroBlaze 的嵌入式I /O 系统设计与实现图3 PS /2设备到主控机的通信时序或监视按键的动作。
如果发现有键按下(或按住)或释放,PS /2键盘将给主控机发送扫描码的信息包。
扫描码包括两种:通码和断码。
当一个键被按下(或按住)时,PS /2键盘就向接口发送通码。
当该按键被弹起释放时,PS /2键盘向接口发送断码。
多数第二套断码长为两字节,第一个字节为“F0h ”,第二个字节是那个键的通码;扩展按键的断码通常有三个字节,它们前两个字节是E0h 、F0h 最后一个字节是这个按键通码的最后一个字节。
PS /2键盘先发送通码按键被释放后发送断码,由于每个按键被分配了唯一的通码和断码,主控机在接收到PS /2键盘发送的信息后,就可以通过查找扫描码的方法来确定按下的是哪个键。
(3)PS /2接口设计使用Verilog 硬件描述语言编写底层的PS /2模块,采用状态机的设计来控制不同状态下需要完成的任务。
具体实现办法为:①首先使输入信号ps clk 和ps data 与状态机的时钟同步,经过同步触发器后输出为ps clk s和ps data s ,可以避免按键抖动错误产生虚假状态转移。
②键盘接口的时钟和数据线由于是集电极开路的,因此在空闲状态时均为高电平。
首先检测psclk s 是否持续60μs 为高电平,如果是则检测ps data s 是否为高,如果满足条件则数据在时钟的下降沿被读取,同时对ps data s 要进行串并转换生成并行数据q ,临时存储11位数据,在硬件设计中利用移位寄存器实现了数据的串并转换。
③对数据进行奇偶校验,检查接受到的数据是否正确,然后按照PS /2数据通信帧格式从q 中提取出按键的通码。
④通过断码标识“F0h ”或“E0h 、F0h ”检测按键是否被放开,否则一直输出此键值。
⑤在输出按键的通码的同时产生一个中断信号,方便硬件与软件进行通信,由软件接受数据并对其进行处理。
⑥硬件使用100M H z 晶振,因此添加了计数器,以检测ps clk s 是否持续60μs 高电平。