分类: LINUX
2008-04-26 16:49:41
1 S1D13506和AT91RM9200介绍
AT9lRM9200是一款基于ARM920T内核的高性价比、低功耗、32位的ARM芯片,时钟频率为180MHz,运算速度可以达到200MIPS。A191RM9200具有存储器管理单元(MMU)、16KB的SRAM和128KB的ROM以及外部总线接口(EBI),支持SDRAM、静态存储器、Burst Flash、CompactFlash、SmartMedia以及NAND Flash,还集成了USB控制器、以太网控制器、RTC、SPI、I2C等丰富的外围设备。AT91RM9200处理器内部没有集成LCD控制器,因而需要配备专用的显示控制器,才能实现LCD显示。
S1D13506是EPSON大规模显示控制器家族中较新的一款,是以SED1356控制器为基础发展起来的具有更多功能的LCD显示控制器。它可以灵活地对各种不同的显示方式进行设置,功能非常强大,可以和目前市场上流行的多种CPU总线兼容。
2 AT91RM9200与S1D13506的接口设计
2.1 AT91RM9200的EBI总线接口
AT9lRMR9200的EBI总线接口用以确保多个外设与基于ARM器件的内置控制存储器之间实现正确数据传输。静态存储器、SDRAM及BurstFlash控制器均可作为EBI上的外部存储控制器。EBI拥有8个片选信号(NCS[7:0]),可处理多达8个外设的数据传输;数据通过8位或16位数据总线进行传输(SMC_CSR中的DBW位控制相应的数据总线宽度);地址总线高达26位。在16位数据总线宽度下,EBI与显示控制器相关的总线接口信号定义如表1所示。
2.2 S1D13506的PC卡总线接口
S1D13506的PC卡总线接口可以很方便地与AT91RM9200相连,其总线接口信号定义如表2所示。
2.3 接口分析及实现
从上述接口信号的定义分析得出,AT91RM9200的AB[1:20]、DB[0:15]、NRST、NCS2、NWR1、NWR0、信号引脚和S1D13506的A[1:20]、D[0:15]、RESET、CS、WE1、WE0信号引脚可以分别进行连接,而S1D13506的RD/WR和RD则短接以后和AT9lRM9200的NRD信号相连。S1D13506与AT91RM9200的总线连接如图1所示。S1D13506的输出可以驱动VGA显示器或者最大为800×600点阵的LCD显示屏。
3 μC/GUI的移植
μC/GUI是Micfium公司开发的通用的嵌入式用户图形界面软件。它为任何使用图形LCD的应用程序提供独立于处理器和LCD控制器的有效图形用户接口。可以应用于单一任务环境中,也可以应用于多任务环境中。μC/GUI能够应用于任何LCD控制器和CPU的任何尺寸的物理显示或者模拟显示中。
本接口电路的底层测试软件均用C语言编程实现。由于源程序太长,在本文中不便列出。该程序可以在上找到。
在S1D13506显示控制器硬件驱动程序正常的情况下,μC/GUI移植的主要工作就是修改LCD_Conf.h、GUICONF.h和GUI_X.C三个配置文件。GUICONF.h、GUI_X.C的移植比较简单,下面主要介绍LCD_Conf.h的移植。
另外,μC/GUI中还有一些跟时间相关的调用,如GUI_X_Delay等。这些函数需用到系统时间变量OS_TimeMS,该变量可用μC/OS操作系统维护更新,或者通过以下方式解决。
修改完以后,μC/GUI的移植基本完成。
4 μC/GUI的一个应用实例
首先通过和AT91RM9200相连的MAXl320芯片把电网三相电压采集进来,然后在液晶上把三相电压波形显示出来。显示效果如图2所示。
4.1 主程序的编写
在对电网一个周波采样完成以后.调用GUI_MEMDEV_Draw函数在LCD上显示波形。主程序如下:
4.2 回调函数的编写
回调函数是用户编写的主要部分,它以参数的形式被主函数调用。在本程序中,回调函数的编写流程是:首先对黑色矩形框进行清屏,然后绘制暗灰色网格,最后调用GUI_DrawGrdph()绘制曲线。程序如下:
本文介绍了μC/GUI在AT91RM9200处理器和S1D13506显示控制器的接口电路上移植的过程,并给出了一个应用实例。实践证明,μC/GUI具有完善的图形函数接口、占用RAM和ROM的空间小、可移植性好等特点。在后PC机时代,μC/GUI将会有非常广阔的应用前景。