基于ARM44B0x的信号发射机控制器设计
的获取和对CPLD器件的访问。
3.人机接口模块设计
要监控发射机工作状 态就必须具备良好的人机接口,需要给控制器选配合适的显示设备,在本项目中选用7.8寸640×480象素STN型彩色液晶显示屏(LCD),采用8位数 据单扫描方式,在实际应用中显示效果很好不仅成本低且美观大方,STN型LCD屏与44B0x的接口比较简单但需要注意的是第18 引脚(Vcom)通过一个变阻器与电源相连,调整该引脚上的电压就可以调整LCD屏的对比度。软件设计中的关键是菜单的设计和按键响应及处理,由于本项目 中的界面较多且存在翻屏所以宜设计一个统一处理的算法,为此,把每个界面统一编号WndID,把按键作为一个消息处理MessageFun();每次按一 个键就调用MessageFun(),找到需要显示的界面并在LCD上显示。LCD翻屏的方法是每次记录显示的内容在整个菜单数组中的偏移,若当前行超过 偏移就需要翻屏否则不翻屏。对于菜单的设计作如下处理:用一个结构体把一个菜单的属性完整地封装好,其属性包括菜单名称、坐标、参数标志、参数。
typedef struct{
UINT8T Menu_ID;//菜单编号
UINT8T *Text; //菜单名称
UINT16T xPos; //菜单x坐标
UINT16T yPos; //菜单y坐标
UINT8T ParaFlag; //参数标志
UINT8T pData[7]; //参数
}Menu;
图4 菜单显示
利用结构体将每一个菜单的属性都封装好再放到一个数组里面,这样对菜单的个数没有限制且容易管理,每一个菜单的信息都很清晰,编程不易出错。
人机界面操作的核心工作就是界面的切换、主菜单和子菜单操作。根据按键来确定对应的界面ID号,切换界面的方法通常有两种改变显存的内容和改变显存的基 址,改变显存的基址就需要定义很大的显存,这样做的优点是利用硬件资源使LCD屏显示的刷新速度很高、界面切换快,缺点是很大地浪费了系统资源;若改变显 存中的内容就需要用软件的方法来更新显存中的内容,这种方法的好处就是节约了系统资源,但是增加的软件设计的复杂度;本项目采用的就是更新显存内容的方法 在实际的调试中发现能够很好地满足要求。关于主菜单和子菜单的操作设计了一种统一调度的算法,其思想是根据获取的按键信息来确定主菜单的ID号和子菜单的 ID号,使用焦点标记当前菜单的ID号,由这两个ID号就可以确定相应的主、子菜单同时进入对应的功能处理程序。
4.以太网通信模块设计
在硬件设计时选择RTL8019AS网络控制芯片,它可以工作在8/16 位总线宽度下传输速度为10Mbps,遵循IEEE 802.3 协议。内部具有16KB SRAM集成了MAC收发缓冲区和物理层的功能,它用来接收和发送以太网的物理传输数据,当RTL8019AS收到网络数据包后,RTL8019AS内部 的某些控制寄存器的状态就被改变,通过设置中断或者查询的方法来读取这些寄存器的状态判断数据是否收到;发送数据时,将数据放入到RTL8019AS内部 数据缓冲区后,通过控制内部的寄存器,将缓冲区的网络数据发送到网络上去。该芯片有三种工作模式:跳线模式,即插即用模式,免跳线模式。在项目中网卡芯片 RTL8019AS是在跳线模式下工作。对该芯片的驱动主要包括以下几个步骤:复位、初始化、收发数据。RTL8019的复位引脚RSTDRV是高电平有 效,有效的保持时间宜大于800ns,且在由高到低切换后的100ms后才对芯片操作。在对芯片初始化之前需要预先分配好片内RAM中的空间即接收和发送 缓存的大小,在把所有的设置参数在初始化的时候一起写入RTL8019的寄存器完成初始化。
5.结语
项目开发调试的 过程中有许多软件和硬件方面的困难,但是问题最后都是在不断地解决,如系统的了串口,LCD,AD采样,Flash操作的调试等工作以及控制器所要具备的 人机交互功能的程序设计且需调试通过。把以太网模块加到工程中后,其物理层芯片的驱动程序需进一步调试,把TCP/IP协议加入模块,参照成功的案例,完 成系统的调试任务。同时,本文具有以下创新点:
(1)开发应用32位微处理ARMS3C44B0x作为控制器的内核,使控制器比用单片机作内核的处理器具有更全面的功能和更好的使用性能。
(2)在菜单的设计中,用一个结构体把一个菜单的属性完整地封装好,其属性包括菜单名称、坐标、参数标志、参数。
(3)解决了该网卡芯片使RTL8019AS正常工作的问题,在对芯片初始化之前需要预先分配好片内RAM中的空间即接收和发送缓存的大小,在把所有的设置参数在初始化的时候一起写入RTL8019的寄存器完成初始化。
- 用ARM和FPGA搭建神经网络处理器通信方案(07-19)
- ARM与神经网络处理器通信方案的设计实现(07-10)
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)
- 浪涌抑制器IC简化了危险环境中电子设备的本质安全势垒设计(08-19)
- 严酷的汽车环境要求高性能电源转换(08-17)