历史上的今天
返回首页

历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2020年10月10日 | 基于EP7312的新型嵌入式系统的实现

2020-10-10 来源:elecfans

  1前言

  随着以计算机和软件为核心的数字化技术的迅速发展,多媒体技术与Internet的应用迅速普及。计算机﹑通讯﹑消费电子一体化的趋势日趋明显。作为新型智能3C合一的嵌入式系统与技术进入智能化﹑网络化的发展阶段。


  所谓嵌入式系统,即将应用程序和操作系统和计算机硬件集成在一起的系统。简而言之即软硬件一体化。这种系统具有小巧灵活﹑性价比高﹑自动化高﹑实时性强﹑专业性强等特点。嵌入式系统适合应用于人类工作与生活的各个领域,最为典型的应用有机顶盒﹑数字应用﹑WebTV﹑ATM/POS机﹑多媒体手机﹑袖珍电脑﹑车载导航器﹑航空电子等等。嵌入式技术已经深入人类生活和工作的方方面面,在娱乐,军事方面也有强大的应用潜力。


  全球有四大操作系统:WinCE﹑Palm OS﹑EPoc和Linu.,Linux以稳定﹑高效﹑易制定﹑易裁减﹑硬件支持广泛的特点,结合其免费﹑开源的特征在嵌入式操作系统中的地位越来越重要。越来越多的嵌入式,包括PDA﹑机顶盒﹑WAP手机等系统不仅仅要求高性能高可靠性的图形显示界面支持,而且要求提供全功能的Web浏览器。包括 HTML支持,JavaScripe支持,甚至包括Java虚拟机的支持。本文所介绍的系统是一个拥有图形界面,支持嵌入式浏览器的ARM Linux系统。


  2嵌入式系统结构

  基于EP7312的嵌入式系统分为软件和硬件两大部分。硬件是自主开发的EB7312-B嵌入式开发系统。软件由ARM Linux﹑Microwindows和ViewML三部分组成。如图1.

  2.1 EB7312-B

  EB7312- B所采用的CPU是Cirrus Logic公司出品的EP7312.EP7312由一个32位精简指令集微控制器及片上外围所组成,是专门用于PDA﹑Internet设备﹑移动电话和手持设备等设计成超低功耗和高性能的微处理器。EB7312-B的核心逻辑部是ARM720T处理器,由ARM7TCMI CPU核模块﹑内存管理单元﹑写缓冲器模块和8K独立的指令数据高速缓存组成。内存管理单元兼容WinCE和Linux.其他功能块有内存控制器;48KB的片上SRAM.(LCD控制器和一般应用共用);内存32MB SDRAM,16MB Flash;两个全双工的UART(16550型);10M以太网卡CS8900A;彩色320X240 LCD,EP7312本身并不直接支持彩色LCD,它是通过微小的外部逻辑和对LCD驱动器的一个轻微的改动来实现对彩色的支持; 83键ASCII键盘。

  

  图1嵌入式系统结构

  

  图2 ViewML体系结构

  2.2 ARM Linux

  ARM Linux是一个将Linux内核移植到各种基于ARM处理器的目标系统的项目。由Russell Kingrmk@arm.linux.org.uk 持。已经为超过100多种不同的目标系统成功完成了移植工作。这里所移植的Linux内核是Linux-2.4.24,ARM Linux补丁是2004年2月发布的Linux-2.4.24-vrs1.在移植过程中,重点工作是启动程序的实现和ARM Linux下针对具体的硬件环境桢缓冲设备驱动程序的设计。


  启动程序的主要步骤为:设置入口指针,设置中断向量,设置和初始化RAM,初始化至少一个窜行端口,检测CPU类型,初始化堆栈和寄存器,初始化存储器系统,设置内核相关列表,呼叫内核镜像。需要特别注意的是在设置CPU寄存器时,r?0为0,r2为检测出的CPU型号号码,MMU关闭,指令Catch打开,数据Catch清空后关闭。


  Framebuffer是一个提供显示内存和显示芯片寄存器从物理内存映射到进程地址空间中的设备,其驱动程序主要依靠三个数据结构:fb_info﹑fb_var_screeninfo﹑fb_fix_screeninfo.fb_info结构只能在内核空间访问,其内部定义了 struct fb_ops,结构fb_ops的成员即framebuffer的一系列操作函数。帧缓冲设备的驱动主要就是编写这些接口函数。 fb_var_screeninfo和fb_fix_screeninfo定义视频板卡的硬件特性。如显存大小﹑每行显示位数﹑分辨率等与特定硬件相关的特性。帧缓冲驱动程序首先调用register_framebuffer注册一个framebuffer设备,后在Linux/drivers /video/fbmem.c中登记初始化函数。所有帧缓冲驱动程序的ioctl调用由fbmem.c统一实现。


  2.3 Microwindows

  Microwindows是专门设计用于在小型设备上开发具有高品质图形功能的开放式源码桌面系统,使用较少的RAM和文件存储空间(100K- 600K),在运行的过程中仅需要50~250KB的内存空间。Microwindows不需要任何操作系统和图形系统的支持,可以运行32位的内核支持 Framebuffer机制的Linux系统上。Microwindows的主要目标之一就是把把图形视窗环境引入到运行Linux的小型设备和平台上,提供与X Window相似的功能。


  Microwindows采用分层结构设计方法,在底层提供对屏幕,鼠标或触摸屏,键盘的驱动,是程序能够访问实际的硬件和其他用户订制设备;中间层实现了一个可以移植的图形引擎,这个图形引擎实现画线,填充,多边行,剪辑和多种颜色模式;最上层实现了多种API以适应不同的应用环境。每一层都可以根据不同的应用需求修改代码或重新编码。


  系统中最底层针对显示屏,鼠标,触摸屏,键盘等各定义了一个数据结构供图形引擎使用,分别为struct _mwscreendevice﹑struct _mousedevice和struct _kbddevice,包含了针对指定设备的硬件驱动代码接口。


  在Microwindows中的图形引擎支持framebuffer ,因此只要修改src/中针对基于ARM平台的Linux的配置文件config.ads,指定使用framebuffer作为底层图形支持引擎即可。 Microwindows下支持Linux的鼠标驱动为mou-gpm.c,键盘驱动为kbd_tty.c.在本系统中并没有从头开始编写鼠标键盘各数据结构的成员函数,只对原驱动中针对特定硬件部分作了相应改动。


  2.4 ViewML

  ViewML是第一个开放源代码的,专门面对嵌入式Linux系统的快速发展而开发的小型浏览器。其代码文件只有800KB,运行所需的内存空间约 2MB,使用FLTK作为GUI平台开发,采用C++面向对象的设计。ViewML浏览器可以运行于X Windows和Microwindows系统之上,所以可在Linux平台上进行调试和改进。这极大的方便了对浏览器的进一步完善。本系统中对 ViewML的改进是在基于X Windows平台的Microwindows系统上完成的。


  ViewML浏览器的体系结构如图2.其应用层很小,完全用C++ FLTK(Fast Light Tool Kit)应用框架编写,提供基本的图形用户界面布局,同时该层还处理网络和本地文件存取要求。其语法分析器和显示引擎选用了源码开放的KDE桌面的kfm 文件管理器中的KDE 1.0 HTML窗口部件(即图1中的KHTML View和窗口部件模块)。该窗口管理部件工作稳定,支持全部的HTML 3.2功能及部分JavaScript 1.1.KDE的窗口部件采用的是QT窗口部件集合,为适应嵌入式系统的要求,ViewML采用了轻量级图形库FLTK.QT兼容层提供了HTML窗口部件和FLTK应用框架之间的接口。底层的网络协议采用万维网协会的WWWLib库执行所有的异步网络输入输出和HTTP获得功能。


  ViewML是直接针对嵌入式Linux环境的一种高品质的网络浏览器。通过包含源代码开放的核心部件,能够在占用很少的RAM和ROM资源的条件下使用高质量的图形引擎。但在实际是移植使用中发现了一些该浏览器的欠缺之处,下面重点讨论本系统针对ViewML窗口界面的改进。

推荐阅读

史海拾趣

广州盛炬(GZSJ)公司的发展小趣事

机顶盒,全称为数字视频变换盒(Set Top Box,简称STB),是现代家庭娱乐系统中不可或缺的关键设备。它作为连接电视机与外部信号源的桥梁,能够将接收到的数字电视信号转换成适合电视播放的格式,极大地丰富了用户的视听体验。

机顶盒的起源可追溯至20世纪90年代初,最初是为了解决有线电视收视费问题而设计的解扰设备。随着数字电视技术的发展,机顶盒的功能不断扩展,现已成为集数字信号接收、解码、显示以及多种增值服务于一体的智能终端。

从技术层面看,机顶盒支持多种信号源,包括有线电缆、卫星天线、宽带网络及地面广播等。它不仅能够接收高清、超高清电视节目,还能提供电子节目指南(EPG)、因特网网页浏览、视频点播、游戏等多元化服务。此外,一些先进的机顶盒还集成了智能语音助手、云计算和边缘计算技术,实现了更为便捷、智能的用户交互和内容分发。

在内容创新方面,机顶盒通过与各大内容提供商合作,不断引入优质资源,如电影、电视剧、综艺节目等,并根据用户偏好提供个性化推荐服务。同时,其跨平台整合能力也使得用户可以在不同设备间无缝切换,享受高质量的视频内容。

综上所述,机顶盒作为数字电视技术的核心组成部分,以其强大的功能、丰富的内容和便捷的操作体验,成为了现代家庭娱乐的重要选择。随着技术的不断进步和市场的持续扩大,机顶盒将继续发展,为用户带来更加优质、便捷、智能的观影体验。

中微股份(Cmsemicon)公司的发展小趣事

在刻蚀设备领域取得成功后,中微并没有满足于现状,而是积极拓展多领域,实现业务多元化。2012年,公司完成了首台MOCVD设备的研制,成功进入薄膜沉积领域。2016年,公司又完成了首台ICP刻蚀设备的研制,进一步巩固了在刻蚀设备领域的领先地位。此外,公司还在环保领域有所布局,成功研制出首台VOC设备。这些举措不仅丰富了公司的产品线,也为公司带来了更多的市场机遇。

DESOUTTER公司的发展小趣事

随着全球经济的不断发展,Desoutter公司开始实施国际化战略,积极开拓国际市场。公司通过与全球知名企业的合作,如大众集团、捷豹路虎集团等,成功进入了欧洲、北美等地区的市场。同时,Desoutter公司还在全球范围内建立了多个生产基地和研发中心,以更好地满足不同地区客户的需求。

台湾美丽微(FMS)公司的发展小趣事

近年来,FTDI通过战略并购进一步拓展了其业务领域。例如,电连技术通过发行股份及支付现金的方式收购了FTDI的控股权,这一举措不仅使电连技术在产品和客户层面实现了更完整的布局,也增强了其在汽车电子、物联网、工业产品、医疗设备等多个领域的市场竞争力。FTDI凭借其在USB桥接芯片领域的深厚积累和技术优势,为电连技术的业务扩展提供了有力支持,共同推动了公司在全球电子元件产业的持续发展。

AUK Contractors Co Ltd公司的发展小趣事

随着公司业务的不断扩展,AUK Contractors Co Ltd意识到单一市场已无法满足其增长需求。于是,公司积极寻求国际合作,与多个国家的电子企业建立了战略伙伴关系。通过技术交流和资源共享,公司成功打开了新的市场,实现了业务的快速增长。

Daykin Electric Corp公司的发展小趣事

1995年,大金在上海闵行建立了其在中国的第一家工厂——大金空调(上海)有限公司。这一举措不仅标志着大金正式进入中国市场,也为公司在中国市场的长期发展奠定了坚实的基础。通过与上海闵行的深入合作,大金在中国市场的业务不断壮大,成为了中国家电市场的领军企业之一。

以上故事均基于大金工业株式会社的发展历史进行虚构创作,旨在展示公司在电子行业中的发展历程和成就。

问答坊 | AI 解惑

Quartus2的FPGACPLD设计.PDF

Quartus2的FPGACPLD设计.PDF…

查看全部问答>

看图说故事.宽动态摄像机是什么?

摄像机这阵子来在技术上似乎很沉寂,红外一体机炒了那么久,卖的人卖的很高兴,吹的人也吹上天,用的人也骂翻天,反正也就这样不了了之,想写些东西,偏偏找不到题材, 还好最近各厂家的炒做题材移到了两个项目:“宽动态” “低照度”,所以赶紧写 ...…

查看全部问答>

电子变压器设计手册(王瑞华编)

电子变压器设计手册(王瑞华编)!以前下载的,以前都是自己收藏,分享下!…

查看全部问答>

分布式仲裁的逻辑图的原理?

学习组成原理时我知道分布式仲裁的逻辑图怎么画,但我不知道它的原理?请知道的帮我一下.…

查看全部问答>

PADS reuse(重复使用电路)

PADS reuse(重复使用电路)…

查看全部问答>

哪位大侠帮帮忙! LCD程序问题1604

LCD液晶显示 LCD1604驱动模块 /*备注一:LCD1604只含有ASCII码表内字符的字库,无汉字字库,不能自行打点,不便画曲线*/ /*本模板功能一:在任意位置显示阿拉伯数字 */ /*本模板功能二:在任意位置显示字符及字符串 */ #include #include \"l ...…

查看全部问答>

基于Kinetis的简单webserver(五)

2012-1-30开始移植SLCD的其它功能函数这一步更简单了,直接将Kwikstik_Demo中的Driver_SLCD.h,Driver_SLCD.c,Fonts_LCD.c,Fonts_LCD.h拷贝过来,重定义下数据类型的转定义编译后没有问题了整理下软件代码结构,在uc-OS-III的根目录下创建Drivers文 ...…

查看全部问答>

150米以上传输距离的除了zigbee还有其他模块推荐吗

nrf24l01可以外接天线吗,到底最远距离到多少了?谢谢…

查看全部问答>

求大侠指教,单片机型号选择!

大侠们,本人单片机小白,最近想自己DIY一个东西,可以事实显示时间,温度,湿度,还有可以接受短信并且滚动显示出来,请问该用什么型号的单片机,顺便求资料!小弟先在此拜谢!…

查看全部问答>

画8088 8253等元件的封装尺寸在哪找啊

我是用封装向导画的,都用的是默认尺寸,画出来之后图纸上放不下,才考虑到也许是自己画的太大,求8088,8253 ADC0809,各种元器件的封装尺寸啊。谢谢大神了。…

查看全部问答>