人机接口界面HMI在基于FPGA的嵌入式系统中的设计实现

2015-05-30 21:47:02杨亦红
科技创新与应用 2015年2期
关键词:研究

杨亦红

摘 要:文章使用FPGA器件,结合包括TSK51等多种IP软核实现了基于FPGA的嵌入式电子系统的基本人机接口(HMI)的硬件设计。在线缆检测系统的应用证明,该系统能够将在单芯片上就解决人机界面硬件电路的驱动,有助于完成传统51单片机系统的包括人机接口界面的完整平台移植,对有效地降低系统硬件成本。

关键词:人机接口界面HMI;FPGA的嵌入式系统;研究

引言

随着大规模逻辑集成电路设计技术的进步和制造工艺水平的提高,单个芯片上的逻辑门数的增加,基于FPGA为控制核心的嵌入式系统的设计已逐渐流行。这时,人机接口界面(HMI)在传统嵌入式系统中,基于微处理器CPU管理的工作方式能否沿用到基于FPGA的嵌入式系统中来,将会影响到系统开发的效率。文章在Altium电子设计软件平台上,通过从FPGA中引入IP核进行单芯片系统(SOC)电路设计,可用来完成传统51单片机系统的包括人机接口界面的完整平台移植,具有一定的实践意义。

1 结构与工作原理

电子电路设计软件Altium允许在FPGA中设计、实现及调试基于微处理的数字设计。这可以通过采用原理图输入、VHDL设计输入或混合输入方法设计电路,经综合和适配等编译动作,并下载到处理器中后,FPGA中就可实现一个基于微处理器的电子系统。文章采用该软件提供的TSK51 IP核、RS232 IP核、PS2 IP核及LCD IP核等完成了包括键盘、通信、显示等模块人机接口的基本嵌入式系统的设计,该设计可以完美复用传统基于51单片机的系统电路。

1.1 IP核模块

1.1.1 TSK51核

TSK51核是一个全功能的采用哈佛结构的8位微处理器,它执行ASM51汇编语言指令,其指令系统与传统80C31兼容,具有软件和硬件中断、一个全双工串行通信接口和一个定时器系统。其技术特性包括:(1)控制器:8位指令解码器。算术逻辑单元:8位算术运算、8位逻辑运算、布尔运算、8×8乘法运算、8/8除法运算。(2)32位输入输出端口:4个8位输入输出端口。两个16位定时器/计数器。(3)全双工模式串行接口:固定波特率的同步模式、可变波特率的8位UART模式、固定波特率的UART模式、可变波特率的9位UART模式、多处理器通信。(4)中断控制器:两组优先级。(5)内部存储器接口:可寻址多达64KB的内部程序存储器空间、可寻址多达256B的读/写数据存储器空间。外部存储器接口:可寻址多达64KB的外部程序存储器空间、可寻址多达64KB的外部数据存储器空间。

因此可以使用TSK51进行设计的FPGA电路,可以完全使用8051单片机的编程知识进行设计。

1.1.2 PS2控制器IP核

PS2控制器IP核,可以实现PS2控制器与PS2设备之间的双向通信:

(1)PS/2设备向PS2控制器传输数据。当控制器在空闲状态(PS2DATA=1,PS2CLK=1)时,PS/2设备随时可以向控制器发送数据,然后PS/2设备在等半个PS2CLK周期后才开始传输。传输按数据帧方式进行,每帧包括一字节数据,帧数据取决于需要传输的消息的字节数。

(2)PS2控制器向PS/2设备传输数据。当主MCU要通过PS2控制器向PS/2设备发送一个命令时,STROBE引脚要至少维持一个外部系统时钟周期(CLK input),这将使PS2控制器从DATAI线上取得要传输的数据。要激活传输,PS2控制器需要进入"主机发送请求状态",这将通过以下步骤达成:a.首先PS2CLK维持至少一个时钟周期(进入禁止传输状态);b.PS2DATA然后变低(提供欲发送帧的Start位);c.然后释放PS2CLK线(仍然保持PS2DATA为低)。

1.1.3 LCD 16×2A控制器

采用有限状态机实现,当设备复位后,将执行一系列LCD初始化动作。控制最大的操作频率是80MHz。其工作过程如下:

(1)控制器复位。当RST信号有效时,BUSY信号也变为有效,以指示控制器处于复位状态,不可以被使用。当RST无效时,控制将执行KS0066U兼容LCD面板的标准初始化动作序列。

(2)LCD初始化动作序列。全部初始化阶段下BUSY信号是有效的,结果是所有写到控制器的数据将被忽略。a.定义指令集-这一状态下,LCD控制器被编程设置数据长度、使用几行、及使用什么字体。控制器分别设置这些值为8位、2行、和5×8像素。b.等待39us。c.显示ON/OFF控制-在这一状态下,LCD控制器被编程设置显示、光标和光标闪烁设置:Display-ON、Cursor-OFF、光标闪烁-OFF。d.等待39us。e.清显示-这一状态下,ASCII码20h(空格字符)将写入到LCD 面板。f.DDRAM(数据存储器)和字符地址设为0h(面板的左上角)。这一位置后,所有地址有一个空格字节,因此LCD面板被清空。g.等待39us。g.初始化完成-BUSY变无效。之后可以使用LCD面板了。

(3)将数据显示在LCD面板上。当BUSY无效时,LCD控制器等待数据,准备在LCD面板上显示一个新的字符,这就是等待数据状态。要发起显示操作,ADDR, DATA 和 LINE信号必须是稳定的,且STROBE 端口用于触发操作。当STROBE信号有效时,将进行如下动作:a.LCD面板上的字符位置(由4-bit ADDR总线定义),被装入到控制器的地址寄存器 (ADDREG)。b.字符显示的行(由LINE信号定义),被装入到控制器行选择寄存器(LINESEL)。c.实际要显示的字符(由8位数据总线定义), 被装入到控制器数据寄存器(DATREG)。d.控制器FSM然后进入‘设置地址状态,BUSY信号同时变为有效。ADDREG和LINSEL寄存器的内容被传递到LCD面板。e.控制器然后等待39us,接着,FSM进入‘显示字符状态。f.这时无论DATREG中的什么数据也都能写入到LCD字符存储器中。g.控制器等待LCD面板完成操作,然后回到‘等待数据状态,等待显示下一字符。BUSY信号这时变为无效。

2 系统软件设计

所有IP核都作为FPGA内部的组成模块,TSK51核作为兼容80C31指令系统的CPU核,起到主处理器的作用。RAMS_8*2K是其内部RAM,在其上可以移植传统51系统的所有代码。程序的主体结构如下所示。

void main(void)

{

……

InitInterrupt0();

InitLCD(); LCDClear(0); LCDClear(1);

LCDDisplayLine("Init KBRD...", 0, 12, 0);

KeyboardInit();

while (keyboard_sent_init_sequence == 0) { }

LCDDisplayLine("KBRD Initialized",0, 16, 0);

while (1)

{

//在些检测按键并显示

LCDClear(0);

displaychar = KeyboardMapKey(key);

LCDDisplayChar(displaychar);

//……类似方式显示其它内容

}

}

3 结束语

文章通过IP核,在基于FPGA的嵌入式系统中实现了基本人机接口界面(HMI)的设计,由于其具有兼容51系统的指令集的特点,可以完美地实现传统基本51CPU的嵌入式系统的平台移植,本系统承担了线缆检测系统中的主控制器,运行效果良好。这一方案对于早期设备的改进和再创新具有实际意义。

参考文献

[1]葉明.基于HMI控制系统中数据采集技术的应用与研究[D].武汉理工大学,2006.

[2]刘凯.基于FPGA的系统设计和应用研究[D].国防科学技术大学,2005.

[3]龚宇洁.嵌入式HMI组态软件研究与设计[D].武汉理工大学,2009.

[4]马伟民.基于组件技术的人机界面(HMI)研究[D].杭州电子科技大学,2009.

猜你喜欢
研究
FMS与YBT相关性的实证研究
2020年国内翻译研究述评
辽代千人邑研究述论
视错觉在平面设计中的应用与研究
科技传播(2019年22期)2020-01-14 03:06:54
关于辽朝“一国两制”研究的回顾与思考
EMA伺服控制系统研究
基于声、光、磁、触摸多功能控制的研究
电子制作(2018年11期)2018-08-04 03:26:04
新版C-NCAP侧面碰撞假人损伤研究
关于反倾销会计研究的思考
焊接膜层脱落的攻关研究
电子制作(2017年23期)2017-02-02 07:17:19