关键词:嵌入式系统 EVB2107评估板 集成开发环境网络 接口控制器
1 前言
嵌入式系统是以应用为中心、以计算机为基础、软件硬件均可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。近年来,随着计算机、微电子、通信及网络技术的发展,嵌入式系统渗透到各个领域。由于嵌入式系统通常采用微控制器芯片来构建,但微控制器生产商通常只提供芯片的编译器和连接器,而不提供完整的开发平台;应用开发商往往根据微控制器来构建自己的应用产品,通常不提供完整的尤其是通用的嵌入式系统开发平台;国外第三方公司提供的开发平台一般都功能单一、结构简单且价格昂贵。国内的开发平台一般也只是一个简单的评估板和调试平台,通常不能支持高档微控制器。因此为了满足开发各种应用系统的需求,本文提出了嵌入式系统开发平台的设计与实现方法。
在硬件上,嵌入式系统开发平台以各种微控制器为核心,以嵌入式系统的常用组成部件的并集为基本要素,构建的硬件设计和调试平台。作为通用的开发平台,平台支持以8位、16位、32位微控制器家族中1~2款具有代表性的微控制器为核心,并且包括网络通信、USB高速串行通信、存储器系统扩展、大屏幕液晶显示器/触摸屏控制器等常用部件。在软件上,嵌入式系统开发平台以嵌入式微内核实时操作系统为核心,提供了各种软硬件资源的管理程序,丰富的函数库和调试工具,以及各种功能模块的标准化应用设计例程,构造了一个基本的调试和开发平台。在针对具体的嵌入式系统应用开发时,只需要在此平台基础上对软、硬件进行适当剪裁、组装,就可以完成一个实际的嵌入式系统。
2 EVB2107评估板的资源与开发环境
EVB2107评估板是以32位微控制器MMC2107为核心,扩展了存储器、OnCE接口、串行接口、电源电路等模块,组成了一个板级的基本系统,其逻辑结构如图1所示。
EVB2107评估板上提供了1MB的SRAM和2MB的FLASH存储器,极大地扩展了板上存储器容量。可编程逻辑器件CPLD用来实现板内的各种控制逻辑电路,可控制评估板上的LED指示灯显示;采样跳线开关设置值实现系统配置;产生存储器地址、控制信号,实现MMC2107对评估板上外部存储器的16位或32位访问。3个外围端口引出插座,分别用来引出SPI、串行通信接口、定时器接口的信号,引入外部中断请求信号,引入使用片内QADC进行模数转换的模拟信号。用户可以选择20线的双排扁平电缆或其它连接线其与扩展板相连。用户扩展区(即面包板)提供给用户添加自己的器件。2个RS232串行通信接口和OnCE接口用于调试;12V直流输入电源转换成板内各种工作电源(如5V、3.3V),可为扩展板上各模块供电。
EVB2107评估板通过EBDI(Embedded Background Debug Interface)与主机相连。主机上选用Metrowerks公司提供的CodeWarrior IDE集成开发环境和Motorola公司提供的SysDS(M·CORE System Development Software),构成了软件调试环境。EBDI是EVB2107评估板与CodeWarrior IDE之间的硬件接口,EVB2107评估板上的OnCE接口与EBDI相连,EBDI通过串行线与主机的串行接口相连。进行调试时,CodeWarrior利用EBDI连接通路将程序下载到EVB2107评估板上,再利用CodeWarrior IDE中的Debug功能就可以进行代码的调试了。
3 USB接口模块
该开发通过USB接口与外部设备连接,USB系统由主机(Host)、集线器(Hub)、设备(Device)构成。它们之间通过USB总线相连构成一个星型拓扑结构。在一个USB系统中,必须有而且只有一个主机,主机利用USB主控制器来操纵主机和USB设备之间的数据传输。主控制器像其它I/O设备一样挂在系统总线(PCI总线)下面,附着于主控制器的集线器是USB系统的根集线器(Root Hub),各级集线器提供若干个连接其它设备的下行端口。USB设备在逻辑上分成几个层次,分别是设备、配置、接口和端点,结构如图2所示。
每个USB设备内有一个或多个逻辑连接点,称为端点(endpoint)。端点是一个储存多个字节的缓冲器,用来作为数据的缓冲区,设备通过端点和主机交换数据。每一个设备端点由一个端点号码和数据方向组成,号码范围从00h到0Fh,方向如果为输入(IN),表示流向主机,如果为输出(OUT),表示流出主机。端点0被用来传送配置和控制信息,可以双向传输数据,其它端点均为单向的数据通道,即为接收端点或发送端点。USB提供有四种数据传输方式:控制(Control);同步(isochronous);中断(interrupt);批量(bulk)。除端点0固定使用控制传输外,其它端点可根据实际传输数据的特点配置为其它三种传输方式。
对于相同性质的一组端点的组合称为接口(interface),如果一个设备包含不止一个接口就称之为复合设备(composite device)。对大部分设备,一个接口就足够了,但有些设备可以同时有多个作用的接口,且多个接口可同时使能。同样,对于相同类型的接口组合称为配置(configuration)。每个配置至少必须支持一个接口。大部分设备只有一个配置,但有些设备可支持多个配置,但在同一时间只有一个配置使能,一旦该配置激活,里面的接口和端点就都可以使用。描述符(Descriptor)是一个数据结构,是主机了解设备的格式化信息。主机在检测设备的时候,要求设备传回描述符以便了解设备并配置该设备,主机要求的首先是设备的设备描述符,然后是配置描述符以及每个配置的接口描述符,最后是端点描述符,还可能有可选的字符串描述符。
4 人机交互模块
为给用户提供一个良好的人机交互界面,本开发平台上设计了一个由液晶显示模块和触摸屏控制模块组成的人机交互模块,如图3所示。液晶显示模块由LCD(液晶显示)屏、LCD控制器和显示缓冲存储器三部分组成,其中LCD屏选用信利公司的MG320240型黑白液晶显示屏,其上覆盖有四线电阻式触摸屏,LCD控制器选用EPSON公司的S1D13305芯片,显示缓冲存储器采用两片62L256构成,共64KB;触摸屏控制模块中的触摸屏控制器采用BB公司的ADS7846,在ADS7846和MMC2107之间通过标准的SPI口相连。
4.1 液晶显示模块
S1D13305支持文本(即字符)显示、图形显示以及文、图相结合的显示模式;LCD显示分辨率可达640×256像素;LCD驱动的占空系数变化范围为1/2~1/256;内部掩模有一个具有160字符、5×7像素点阵的字符发生器ROM;支持在片外设置一个具有256字符、最大达8×16象素点阵的字符发生器ROM或RAM;片外的显示RAM(又称显示缓冲区)可达64KB;光标位置及形状可编程控制;全部显示屏面或部分显示屏面可以在水平或竖直方向上平滑滚动;可以与6800系列和8080系列微控制器相接口;宽工作电压范围(2.7~5.5V);功耗低,在VDD=3.5V时工作电流为3.5mA,后备电流为0.05μA。
S1D13305有三方面的接口:微控制器、显示存储器(包括外部的字符发生器)和LCD模块。它接受并执行微控制器的命令,来完成各种显示控制功能,共13种命令。它把显示数据(字符代码或位映射图形数据)从微控制器接收过来并产生写访问存储器的信号,把显示数据写入显示存储器,然后把显示数据读出转化为显示象素并生成LCD的各种时序信号,把显示象素数据送给LCD显示。微控制器只需向S1D13305发命令,在更新显示内容时向S1D13305送显示数据即可,读/写显示存储器以及控制LCD扫描显示的工作均由S1D13305来完成。
S1D13305可以与8080或6800两种类型的微处理器接口,这里根据MMC2107的接口要求,选择前者。在设计时,S1D13305的数据线与MMC2107的数据线D[31:24]相连,S1D13305的地址A0与MMC2107的地址线ADDR1相连,用片选3(CS3#)作为S1D13305的片选信号,在程序中,命令端口地址和数据端口地址定义如下:
#define lcd_command (*(INT8U*)(0x81800002)) // 命令端口
#define lcd_data (*(INT8U*)(0x81800000)) // 数据端口
4.2 触摸屏模块
ADS7846除了基本的X、Y坐标测量功能外,还可测量系统供电电池电压、芯片温度、触摸压力和外模拟量。ADS7846的核心是一个12位的逐次逼近式A/D转换器。内部的6选1模拟多路开关根据微控制器送来的控制字,将X+、Y+、Y-、VBAT(电池电压)、TEMP(温度)和AUXIN(外模拟量)中的一个送入A/D转换器。ADS7846可以对A/D转换提供2.5V的内参考电压,也支持从VREF引脚输入外参考电压。
ADS7846与微控制器之间通过标准的SPI接口相连,它与微控制器完成一次通信需要3次SPI传送。比如进行坐标测量,微控制器先按控制字格式传送一条读坐标命令,ADS7846收到命令的同时进行相应坐标的测量和A/D转换,然后微控制器启动2次SPI读,得到坐标值,第一次读得前7位数据,第二次读得后5位数据。ADS7846还设置有触摸识别电路,当检测到有触摸时,该电路输出一个低电平信号,称为PENIRQ#(笔中断),微控制器可以用这个信号作为ADS7846的中断请求信号。无触摸时,PENIRQ#由外加的上拉电阻输出为高。笔中断变低后,MMC2107检测到这个信号并发出启动转换命令,在转换期间,MMC2107必须维持笔中断为低。
5 创新点总结
本文的创新点在于将各种微控制器与嵌入式微内核实时操作系统有机结合起来,开发 了一个嵌入式开发平台,在此基础上可以大大缩短了应用系统的开发周期,减少了系统开发成本投入,降低了系统开发风险。同时有能满足应用系统的功能、可靠性、成本、体积等要求,在未来的移动计算机平台、信息家电、无线通信设备和工业/商业控制等领域都有十分广泛的应用前景。