基于嵌入式系统开发平台的设计与实现

发布者:Yuexin888最新更新时间:2012-05-21 来源: 微计算机信息 关键字: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口相连。[page]

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来完成。

MMC2107与液晶显示屏硬件接口的设计方案,如图3所示。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  创新点总结

本文的创新点在于将各种微控制器与嵌入式微内核实时操作系统有机结合起来,开发了一个嵌入式开发平台,在此基础上可以大大缩短了应用系统的开发周期,减少了系统开发成本投入,降低了系统开发风险。同时有能满足应用系统的功能、可靠性、成本、体积等要求,在未来的移动计算机平台、信息家电、无线通信设备和工业/商业控制等领域都有十分广泛的应用前景。

参考文献:

1  萧世文编著.  USB2.0硬件设计. 北京:清华大学出版社,2002

2 王田苗主编.  嵌入式系统设计与实例开发. 北京:清华大学出版社,2002

3 邵贝贝,刘慧银编著.  微控制器原理与开发技术. 北京:清华大学出版社,1997

4 莫传孟,冯晓云 基于嵌入式系统μC/OS-II的双CAN通信构件,北京,《微机算计信息》,2004.No.3

关键字:EVB2107  集成开发环境  网络接口控制器 引用地址:基于嵌入式系统开发平台的设计与实现

上一篇:基于RTAI的嵌入式Linux硬实时性能的研究与实现
下一篇:基于嵌入式Linux的MapInfo格式地图显示

推荐阅读最新更新时间:2024-03-16 12:59

STM32入门学习之DMA(STM32F030F4P6基于CooCox IDE
本代码基于STM32F030F4P6,用例为DMA控制串口发送,需要注意以下几点 1、注意串口IO配置,包括IO配置和复用功能选择 2、STM32F030系列的DMA不支持外设到外设,STM32F030只有DMA1,没有DMA2 3、注意不同外设对应不同DMA通道,而且不同芯片的通道也不一定相同,注意看数据手册 直接代码如下: #include stm32_lib/inc/stm32f0xx_rcc.h #include stm32_lib/inc/stm32f0xx_gpio.h #include stm32_lib/inc/stm32f0xx_usart.h #include stm32_lib/in
[单片机]
利用Arduino IDE对ATMEGA8等单片机编程
 为什么希望使用Arduino IDE 对于ATMEGA8进行编程?也许下面三个理由中都可能打动你: Using a cheaper AVR microcontroller Require an AVR microcontroller with more or even less pins than ATmega328 You have all kinds of AVR except ATmega328
[单片机]
利用Arduino <font color='red'>IDE</font>对ATMEGA8等单片机编程
TI推出Code Composer Studio(TM) IDE v6
提供了全新的应用中心、简化的用户界面与智能学习工具。 德州仪器为开发人员提供了一个统一的集成开发环境 (IDE),从而能跨越其广泛的嵌入式产品组合来提高代码质量,缩短开发时间并提升客户体验。 北京2014年5月5日电 /美通社/ -- 日前,德州仪器 (TI) 推出其最新版(第 6 版)的 Code Composer Studio™ 集成开发环境 (IDE),旨在能始终如一地提供资源,使软件开发变得轻松并降低附随成本。基于广受欢迎、符合业界标准的最新版开源 Eclipse 软件框架,Code Composer Studio v6 可提供许多更新、功能和集成式工具,以便使软件开发体验更轻松。运行在 Windows 和
[嵌入式]
Keil C51单片机集成开发环境编程与调试教程
同 VC 之类的通用 C 语言集成开发环境(IDE)一样,Keil 也采用“工程” (Project)的方式管理源代码及相关文件,这种管理方式为由多个源代码文件组 成的大型程序开发提供了方便。不管是最简单的 C51程序,还是复杂的多文件 程序都需要以下步骤: 1)先建立新的工程文件; 2)在工程中新建源代码文件,或是将已经存在的源代码文件加入工程; 3)编译; 4)调试,修正错误再编译; 5)将生成的二进制文件*.hex 烧入单片机。 本教程重点介绍上述前 4 个步骤。 二、Keil中新建工程的步骤 1. 单击菜单“Project——New uVision Project……” 出现新建工程对话框: 在此对话框中选择存
[单片机]
Keil C51单片机<font color='red'>集成开发环境</font>编程与调试教程
Windows平台集成开发环境介绍
目前S698系列处理器在电子、通信以及航空航天等领域有着广泛的应用,但还没有基于这种架构的Windows平台集成开发环境,Orion4.0正好填补了这一空白。本文主要介绍如何利用可扩展的Java开发平台插件机制实现Orion4.0,同时演示如何利用这个集成开发环境进行高效率的开发。   传统的开发流程   文本编辑器编写程序→选择编译工具编译→选择调试工具调试(Debug)→再编译→再调试……编译通过→连接→运行。如果要烧写程序,还需要选用额外的烧写工具。   这种开发流程的缺点是程序非常复杂,而且调试困难。它的操作都是通过命令行完成的,让人有种难以接近的感觉。举个简单的例子:当执行完编译操作后,控制台只是麻木地把编译信
[工业控制]
Windows平台<font color='red'>集成开发环境</font>介绍
[解决办法]MPLAB IDE打开自动关闭
现象描述 MPLAB IDE启动时,卡开图片上一会,然后过一会自动退出,无法打开 出错原因 MPLAB的启动设置出现问题 解决方案 解决方案有三,强烈推荐方案一. 方案一:找到MPLAB安装目录下的(..MicrochipMPLAB IDEUtilitiesSetDefaultMPLABStartup)文件夹中的SetDefaultMPLABStartup.exe,此程序的用途是将MPLAB的设置回复到初始化状态,双击打开,然后MPLAB应该就能正常运行了. 方案二:新建一个用户,不同用户之间的MPLAB的启动设置是不共享的,所以也能正常启动 方案三:卸载掉MPLAB,然后清空注册表里的所有相关项,然后重装,问
[单片机]
【MPLAB X IDE】02:fatal error: xxx.h: No such file or directory
在MPLAB X IDE软件中新建工程。按照惯例,通常会把头文件放在名为 h 的文件夹下,源文件放在 src 文件夹下,如下图所示。这里编译时会报标题所示错误。 环境 MPLAB X IDE版本:v5.10 编译器:xc16-gcc v1.20 解决方法 1、打开菜单 文件项目属性,弹出项目属性对话框。点击 XC16,编辑 Common include dirs。 2、添加 ..和.目录。 这两种路径分别表示:上一级目录的h文件夹和本级目录。 3、点击 OK 按钮后。
[单片机]
【MPLAB X <font color='red'>IDE</font>】02:fatal error: xxx.h: No such file or directory
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved