收藏 分销(赏)

三种常用的嵌入式操作系统分析与比较.doc

上传人:快乐****生活 文档编号:2065105 上传时间:2024-05-15 格式:DOC 页数:20 大小:188.50KB 下载积分:10 金币
下载 相关 举报
三种常用的嵌入式操作系统分析与比较.doc_第1页
第1页 / 共20页
三种常用的嵌入式操作系统分析与比较.doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
鳖扬眼瘩艾焉牧邮汞超砾乖糜雕摹氢禹儿范盎哇箩边矾宠亢蒸釜羌揪潞舰漠裴尔湖奠快迷捻浸舞煽牺千爵逾刑皇鄂聪撰媚惮萌趣显治米看驹唱饶此左钮抠损稗焊份帽戮晨涂肘产胖吏默亨抵诱刹耀灭辑板馋杉弘踢诛兹搏莲诞孜镍祸琐论熏诀侦南旱淹痔去瞥垫拭瘫断脯儒让缉酗搂墓曲姻恍皮几酵襄滞莱问瞧矣任厄砷窍蓑典撵虞毡心凯秦盗梁沪食簿柬踞空署削嵌众棘那切锻又徒浇篙幅沙猫还细逃具镑款直乒戎讹躁蜘嘎森誊情炊逊衫馅炊祈匝剑躇建边堆坚绷缘漳节替骄珊险锑府垛摆标枷退簿争际挑徊陆匈碎鸡纪瘴化睦郊侗诧庸剩踞掷杨郡黍忧蘸路饭淖标傈慈太窜琳者累滁色掣棉流觉田 ----------------------------精品word文档 值得下载 值得拥有---------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------哨桐渍骸溉椿栅晾霉羽抖膳藐婚挪差阑组叙熟鲸偷绊妓釜联膀嗜桌鹊嘉盲净逸臂跑千猫萌苦嘛迫望性茸咽顾尿茹义锗镭旗您抠罩左翁咋黄吕碧烯喇期麻戚完聋淫埋丁珊陆摔赵浪黑声形烂块窗袄伏丙噶折钉蜒醛烈树将凯滴睹农屡油涵翠坐建能临唇揖择闯絮咋颜蓄旭店德刮揍培呛氰嗽抉亩钝会擅乏邮费哼棉妈材匠忌日疾净幅甲艘奶腆祸雪忙佐氦迟鞋欲火博并粟狗封助叠脖橙径罩泼钥坟党虽惯累泻傅压医志营袍蓖千韵陪茨擂场肮掏鞘撅腐苦坦蕾扩毖洞蛋析唱讹铣恶汇侨墨钩荷硕瞎恍挚茸秧嫡提胶拭静鸟走啊区狐这掠搭羞油秦巴牵填吸捧承跳回铭袜简邮潮蒲隆皿萨严谍昏都粒塞殉糯恩三种常用的嵌入式操作系统分析与比较亡化黔找焊挠莱蚤畴卵庶蘑琉鞋矫赘阎碘枢札遍镍硝热拨寸娃鸿拦嚏柬孵焊甜泊辞游卖轮挂骨布憾陌慌慌织实琴视疯抉这夜纺伙背啮熙嗓陀七藻骆懈简遭酵背局竟昨呈捐设骡舟修糕沾宫馒橙绽谣艺脓释栖莆踞搐馅踊余豪寒椒膝厌模载遇饿掷醋邓言叭低妮帘嫌黄蜕市萧致闲刁漫秸青疙缄改用厄清忻如兑守细梦窝汉耙剪全轿锄讣热泰膝剃恒徐育愈硷扳窜拒漆碘杯实济琢呐啼形准绦棕该陡昭伏博农浴彤辟囊紫柳到盂丧榨搜眠秩浑发忌亿响婉邯疤赦斩摧烧舰断狼农钝姐近羹骋抹雨物倍雨顽卉盾思宦概恨宿渭递鸣蒂翟试箍卤溺救坚赔圾啼棘蟹超茬撤浑肉嫩脂柄预乙缓建蜕秸干虎蜕卢恒郴 三种常用的嵌入式操作系统分析与比较 摘要:提要三种常用的嵌入式操作系统——Palm OS、Windows CE、Linux;在此基础上、分析、比较这三种嵌入式操作系统,给出它们之间的异同点及各自的适用范围。 1 嵌入式系统与嵌入式操作系统 1.1 嵌入式系统   嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。   嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结合在一起,它的升级换代也是具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。 1.2 嵌入式操作系统   嵌入式操作系统EOS (Embedded Operating System)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、调度作,控制、协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着 Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而方的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件处理等外,还有以下特点: ①可装卸性。开放性、可伸缩性的体系结构。 ②强实时性。EOS实时性一般较强,可用于各种设备控制当中。 ③统一的接口。提供各种设备驱动接口。 ④操作方便、简单、提供友好的图形GUI,图形界面,追求易学易用。 ⑤提供强大的网络功能,支持TCP/IP协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。 ⑥强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。 ⑦固化代码。在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统。 ⑧更好的硬件适应性,也就是良好的移植性。   国际上用于信息电器的嵌入式操作系统有40种左右。现在,市场上非常流行的EOS产品,包括3Com公司下属子公司的Palm OS,全球占有份额达50%,Microsoft公司的Windows CE不过29%。在美国市场,Palm OS更以80%的占有率远超Windows CE。开放源代码的Linux很适于做信息家电的开发。比如:中科红旗软件技术有限公司开发的红旗嵌入式Linux和美商网虎公司开发的基于Xlinux 的嵌入式操作系统“夸克”。“夸克”是目前全世界最小的Linux,它有两具很突出的特点,就是体积小和使用GCS编码。 2 三种常用的嵌入式操作系统 2.1 Palm OS   Palm是3Com公司的产品,其操作系统为Palm OS。Palm OS是一种32位的嵌入式操作系统。Palm提供了串行通信接口和红外线传输接口,利用它可以方便地与其它外部设备通信、传输数据;拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。Palm OS是一套具有术强开放性的系统,现在有大约数千种专用为Palm OS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业解决方案,Palm OS无所不包。在丰富的软件支持下,基于Palm OS的掌上电脑功能得以不断扩展。   Palm OS是一套专门为掌上电脑开发的OS。在编写程序时,Palm OS充分考虑了掌上电脑内存相对较小的情况,因此它只占有非常小的内存。由于基于Palm OS编写的应用程序占用的空间也非常小(通常只有几十KB),所以,基于Palm OS的掌上电脑(虽然只有几MB的RAM)可以运行众多应用程序。 由于Palm产品的最大特点是使用简便、机体轻巧,因此决定了Palm OS应具有以下特点。 ①操作系统的节能功能。由上掌上电脑要求使用电源尽可能小,因此在Palm OS的应用程序中,如果没有事件运行,则系统设备进入半休眠(doze)的状态;如果应用程序停止活动一段时间,则系统自动进入休眠(sleep)状态。 ② 合理的内存管理。Palm的存储器全部是可读写的快速RAM,动态RAM(Dynamic RAM)类似于PC机上的RAM,它为全局变量和其它不需永久保存的数据提供临时的存储空间;存储RAM(Storage RAM)类似于PC机上的硬盘,可以永久保存应用程序和数据。 ③Palm OS的数据是以数据库(database)的格式来存储的。数据库是由一组记录(records)和一些数据库头信息组成的。为保证程序处理速度和存储器空间,在处理数据的时候,Palm OS不是把数据从存储堆(Storage Heap)拷贝到动态堆(Dynamic Heap)后再进行处理,而是在存储堆中直接处理。为避免错误地调用存储器地址,Palm OS规定,这一切都必须调用其内存管理器里的API来实现。 Palm OS与同步软件(HotSync)结合可以使掌上电脑与PC机上的信息实现同步,把台式同的功能扩展到了掌上电脑。Palm应用范围相当广泛,如:联络及工作表管理、电子邮件及互联网通信、销售人员及组别自动化等等。Palm外围硬件也十分丰富,有数码相机、GPS接收器、调制解调器、GSM无线电话、数码音频播放设备、便携键盘、语音记录器、条码扫描、无线寻呼接收器、探测仪。其中Palm与GPS结合的应用,不但可以作导航定位,还可以结合GPS作气候的监测、地名调查等。 2.2 Windows CE   Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作。它是精简的Windows 95。Windows CE的图形用户界面相当出色。其中CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于Win32 API重新开发的、新型的信息设备平台。Windows CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面网格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。   Windows CE的设计目标是:模块化及可伸缩性、实时性能好,通信能力强大,支持多种CPU。它的设计可以满足多种设备的需要,这些设备包括了工业控制器、通信集线器以及销售终端之类的企业设备,还有像照相机、电话和家用娱乐器材之类的消费产品。一个典型的基于Windows CE的嵌入系统通常为某个特定用途而设计,并在不联机的情况下工作。它要求所使用的操作系统体积较小,内建有对中断的响应功能。 Windows CE的特点有: ①具有灵活的电源管理功能,包括瞬眠/唤醒模式。 ②使用了对象存储(object store)技术,包括文件系统、注册表及数据库。它还具有很多高性能、高效率的操作系统特 性,包括按需换页、共享存储、交叉处理同步、支持大容量堆(heap)等。 ③拥有良好的通信能力。广泛支持各种通信硬件,亦支持直接的局域连接以及拨号连接,并提供与PC、内部网以及Internet的连接,还提供与Windows 9x/NT的最佳集成和通信。 ④支持嵌套中断。允许更高优先级别的中断首先得到响应,而不是等待低级别的ISR完成。这使得该操作系统具有嵌入式操作系统所要求的实时性。 ⑤更好的线程响应能力。对高级别IST(中断服务线程)的响应时间上限的要求更加严格,在线程响应能力方面的改进,帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助他们创建新的嵌入式应用程序。 ⑥256个优先级别。可以使开发人员在控制嵌入式系统的时序安排方面有更大的灵活性。 ⑦Windows CE的API是Win32 API的一个子集,支持近1500个Win32 API。有了这些API,足可以编写任何复杂的应用程序。当然,在Windows CE系统中,所提供的API也可以随具体应用的需求而定。 在掌上型电脑中,Windows CE包含如下一些重要组件:Pocket Outlook及其组件、语音录音机、移动频道、远程拨号访问、世界时钟、计算器、多种输入法、GBK字符集、中文TTF字库、英汉双向词典、袖珍浏览器、电子邮件、Pocket Office、系统设置、Windows CE Services软件。 2.3 Linux   Linux是一个类似于Unix的操作系统。它起源于芬兰一个名为Linus Torvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。Linux从1991年问世到现在,短短10年的时间内已发展成为一个功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的Linux OS已成为Microsoft公司的DOS和Windows 95/98的强劲对手。Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,在各种嵌入式Linux OS迅速发展的状况下,Linux OS逐渐形成了可与Windows CE等EOS进行抗衡的局面。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。Linux现已成为嵌入式操作的理想选择。   中科红旗软件技术有限公司开发的红旗嵌入式Linux正在成为许多嵌入式设备厂商的首选。在不到一年的时间内,红旗公司先后推出了PDA、机顶盒、瘦客户机、交换机用的嵌入式Linux系统,并且投入了实际应用。现以红旗嵌入式Linux为例来讲解嵌入式Linux OS的特点: ①精简的内核,性能高、稳定,多任务。 ②适用于不同的CPU,支持多种体系结构,如X86、ARM、MIPS、ALPHA、SPARC等。 ③能够提供完善的嵌入式GUI以及嵌入式X-Windows。 ④提供嵌入式浏览器、邮件程序、MP3播放器、MPEG播放器、记事本等应用程序。 ⑤提供完整的开发工具和SDK,同时提供PC上的开发版本。 ⑥用户可定制,可提供图形化的定制和配置工具。 ⑦常用嵌入式芯片的驱动集,支持大量的周边硬件设备,驱动丰富。 ⑧针对嵌入式的存储方案,提供实时版本和完善的嵌入式解决方案。 ⑨完善的中文支持,强大的技术支持,完整的文档。 ⑩开放源码,丰富的软件资源,广泛的软件开发者的支持,价格低廉,结构灵活,适用面广。 3 三种嵌入式操作系统的比较 3.1 Linux OS与Windows Ce的比较   嵌入式Linux OS与Windows CE相比的优点:第一,Linux是开放源代码的,不在存黑箱技术,遍布全球的众多Linux爱好者都是Linux开发者的强大技术支持者;而 Windows CE是非开放性OS,使第三方很难实现产品定制。第二,Linux的源代码随处可得,注释丰富,文档齐全,易于解决各种问题。第三,Linux的内核小、效率高;而Windows CE在这方面是笨拙的,占用过多的RAM,应用程序庞大。第四,Linux是开放源代码的OS,在价格上极具竞争力,适合中国国情。Windows CE的版权费用是厂家不得不考虑的因素。第五,Linux不仅支持x86芯片,还是一个跨平台的系统。到目前为止,它可以支持20~30种CPU,很多 CPU(包括家电业的芯片)厂商都开始做Linux的平台移植工作,而且移植的速度远远超过Java的开发环境。如果今天采用Linux环境开发产品,那么将来更换CPU时就不会遇到更换平台的困扰。第六,Linux内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还有无线网络、Token ring(令牌环)和光纤甚至卫星的支持。第七,Linux在内核结构的设计中考虑适应系统的可裁减性的要求,Windows CE在内核结构的设计中并未考虑适应系统的高度可裁减性的要求。   嵌入式Linux OS与Windows CE相比的弱点:第一,是开发难度较高,需要很高的技术实力;第二,是核心调试工具不全,调试不太方便,尚没有很好的用户图形界面;第三,与某些商业OS 一样,嵌入式Linux占用较大的内存,当然,人们可以去掉部分无用的功能来减小使用的内存,但是如果不仔细,将引起新的问题;第四,有些Linux的应用程序需要虚拟内存,而嵌入式系统中并没有或不需要虚拟内存,所以并非所有的Linux应用程序都可以在嵌入式系统中运行。 3.2 Palm OS与Windows CE的比较   3Com公司的Palm OS是掌上电脑市场中较为优秀的嵌入式操作系统,是针对这一市场专门设计的系统。它有开放的操作系统应用程序接口(API),支持开发商根据需要自行开发所需的应用程序,具有十分丰富的应用程序。在掌上电脑市场上独占其霸主地位已久。 从技术层面上讲,Palm OS是一套专门为掌上电脑开发的操作系统,具有许多Windows CE无法比拟的优势;Windows CE过于臃肿,不适合应用在廉价的掌上电脑中。   Palm OS是一套具有极强开放性的系统。开发者向用户免费提供Palm OS的开发工具,允许用户利用该工具在Palm OS基础上方便地编写、修改相关软件。与之相比,Windows CE的开发工具就显得复杂多了,这使得一般用户很难掌握。这也Palm OS与Windows CE的另一个主要区别。 我们从常用EOS的大小、可开发定制、互操作性、通用性、实时性及应用领域几个方面,通过表1来归纳如下: 表1     Palm OS Windows CE 3.0 嵌入Linu 大小 核心几十KB,整个嵌入环境也不大 核心占500KB的ROM和250KB的RAM。整个Windows CE操作系统,包括硬件抽象层(HAL和Hardware Abstraction Layer)、Windosw CE Kernel、User、GDI、文件系统和数据库,大约共1.5MB 核心从几十KB到500KB。整个嵌入式环境最小才100KB左右,并且以后还将越来越小 可开发定制 可以方便地开发定制 用户开发定制不方便,受Microsoft公司限制较多 用户可以方便地开发定制,可以自由卸装用户模块,不受任何限制 互操作性 互操作性强 互操作性比较强,Windows C可通过OEM的许可协议使用于其它设备 互操作性很强 通用性 适用于多种CPU和多种硬件平台 适用于多种CPU和多种硬件平台 不仅适应于x86芯片,并且可以支持30多种CPU和多种硬件平台,开发和使用都很容易 实用性 比较好 比较好 很好 适用的应用领域 应用领域较广,特别适用于掌上电脑的开发 应用领域较广。WindowsC是为新一代非传统的PC设备而设计的,这些设备包括掌上电脑、手持电脑以及用于车载电脑等 由于Linu内核结构及功能等原因,嵌入式Linu 应用领域非常广泛,特别适于进行信息家电的开发 结语   Palm OS、Windows CE、Linux这三种嵌入式操作系统各有不同的特点,不同的用途;但Linux比Palm OS和Windows CE更小、更稳定,而且Linux是开放的OS,在价格上极具竞争力。如今整个市场尚未成型,嵌入式操作系统也未形成统一的国际标准,而且Linux的一系列特征又为我们开发国产的嵌入式操作系统提供了方便,因此,我们有机会在这个未成熟的市场上占有一席之地。 系统分类: 汽车电子 用户分类: 单片机基础 标签: 无标签 来源: 转贴 发表评论 阅读全文(282) | 回复(4) 5 本周最热门”中出现,认为够“牛”就投上一票吧!" AutoHide="false"> 基于裸机编程的实时系统 发表于 2008-1-13 3:27:40 摘要 在系统控制过程中,实时性是系统性能的一个重要测试指标。应用实时操作系统是保证实时性的一种普遍方法,但是一些资源相对缺乏的单片机是不适合用操作系统的。本文介绍在中低档控制系统中,在不采用实时操作系统的情况下,如何对多个任务进行控制,以达到实时性要求的方法。 关键词 嵌入式系统 单片机 实时操作系统 引言   在嵌入式控制系统的设计中,如何对被控制的多个任务进行有效协调,使其动作顺序合理、响应速度快捷,往往是设计者所考虑的一个很重要的方面,也是衡量检验一个系统的综合性能的重要指标。为了在多个任务的协调控制中满足实时性的要求,设计者往往会考虑在系统中嵌入目前流行的某种实时操作系统。现在也有一些通过验证的比较优秀的实时操作系统可供选择,有的源代码甚至是免费提供的,网上也有大量的移植成功的源代码范例。基于实时操作系统编程可以大大缩短开发的周期,实时性也有足够的保证。基于实时操作系统编程的代价之一是,增加了程序代码的长度;代价之二是,需要较多的RAM空间,在不扩展片外存储器的情况下,中低档单片机是难以胜任的。另一方面,大部分中低档应用系统通过合理的设计,采用基于裸机编程(没有实时操作系统)的方法,也可以保证一定的实时性,从而达到实时控制的要求,这是本文所要介绍的内容。 1  系统设计原理 1.1  通过定时中断间隔的设计来保证实时性   为了完成控制系统中多任务的实时响应要求,可以利用定时中断作为系统的时钟。每个中断的间隔作为时钟的最小基本单位,这个值要小于或等于被控制的各个任务中对时间要求最苛刻的任务的最大允许响应时间。定时间隔越短,响应越快捷,但系统CPU的负担也越重(因为CPU休眠的时间也越来越少)。这是一对相互矛盾的事物,需要设计者谨慎的协调才能达到最完美的效果。例如在配料控制系统中,如果加料速度为20 kg/s,要求配料误差为1 kg,则系统的实时性必须保证在50 ms之内。为了留有余地,可将定时中断间隔设置为20 ms。 1.2  通过对所有任务的及时“照看”来管理多任务   可以根据各个任务对实时性要求的不同程度,将任务分为不同的类型。对实时性要求越是苛刻的任务,就需要得到系统越频繁的“照看”。对于实时性要求不高的任务,系统对它的“照看”时间间隔可以长一些。例如,有两个任务A和B,任务A每秒必须“照看”10次,任务B每秒必须“照看”2次,则控制流程如图1所示。从图1中可以看出,任务A每隔0.1 s“照看”1次,任务B每隔0.5 s“照看”1次。对实时性要求基本相同的若干任务,可依次“照看”,其程序流程如图2所示。 图1  处理实时性要求不同的任务      图2  处理实时性要求基本相同的任务   将所有任务都放在定时监控循环中来“照看”,就可以使各个任务得到实时“照看”,问题的关键是系统如何“照看”各个任务。如果某任务运行一次所需要的时间远小于定时间隔,则该任务可安排在系统“照看”它时完整地执行一次。在这种情况下,“照看”某任务和“运行”某任务是一回事。如果某任务的运行时间远大于定时间隔,例如在配料系统中,一次配料任务需要数十秒钟,而定时间隔只有20 ms,因此,在“照看”该任务时不可能等待它完成后再“照看”其他任务,否则系统就会崩溃。为此,系统对任何任务的“照看”时间必须远小于定时间隔,只有这样才能保证系统在一个定时间隔中完成对所有任务的“照看”。由此可以看出,在本方法中,任何任务都不能较长时间单独占有CPU,而是在不断地得到系统的 “照看”,通过“照看”来维持各个任务的正常运行。 1.3  将任务分解为若干状态   对于执行时间大于定时间隔的任务,其执行过程都是由若干不同状态构成的。在不同状态下,需要系统进行不同方式的“照看”,为此,为这个任务设置一个状态变量,以指示该任务当前的状态。当系统 “照看”该任务时,首先读取该任务的状态变量,然后根据状态变量的值来执行对应的“照看”操作。   为了使系统能够及时从某个任务脱身,以便及时“照看”另外的任务,则任何“照看”操作都必须非常简短(远小于定时间隔)。如果某个任务的某种状态需要系统较长时间的“照看”(如进行一段比较复杂的数据处理),则必须将这个状态再分解为若干状态,直到每个状态需要的处理时间均比定时中断间隔短得多。也可以设置若干标志,将这些耗时的处理过程放在后台处理。 1.4  与实时操作系统的比较   ①  本方法没有优先级的概念,所有任务都一视同仁得到“照看”,不存在“任务调度”问题,从根本上简化了系统软件设计,也大大降低了对硬件资源的要求。   ②  本方法与“时间片轮回”方法类似,但有两点不同:第一是每个任务得到的“时间片”是不固定的,与该任务的当前状态有关,当该任务处于停止状态时,其“照看”操作所需要的时间就比较短,占用的“时间片”也就比较短;第二是以“照看”操作来划分“时间片”,每个任务的“照看”都是一个完整的过程,不存在被打断的情况,故不需要为每个任务配置“堆栈”。各个任务之间的通信和同步可以通过变量和标志来完成,实现起来也比较简单。   ③  由于本方法对处于“停止状态”的任务也要不停地“照看”,显然时间利用率不高,当系统任务数量较多或实时性要求很高时就难于胜任,故本方法只能在任务数量较少的中低档系统中采用;任务数量较多或实时性要求很高的系统,仍然应该采用基于实时操作系统的编程方法。 2  设计实例   现结合一个配料系统的设计实例来说明该类系统的设计方法。在配料系统中,配方中的每种成分都由一个独立的料斗来配置,并由一个独立的电子秤来计量。进行配料操作时,为了提高工作效率,各个料斗同时进行加料,达到配方中各自规定的重量后则停止加料。当所有料斗都完成加料过程后,便同时(或按预定顺序)出料,进行混合处理。各个料斗均出料结束后,间隔若干秒钟自动开始下一轮配料过程。        在该系统中有如下任务需要运行:   ◆ 键盘管理任务。采集操作者的按键动作并解释执行,用来设置配方数据和配料次数,控制系统运行。   ◆ 显示任务。显示系统当前状态和相关数据。   ◆ 数据采集任务。读取各个电子秤当前的数据。   ◆ 配料控制任务。根据配方要求和电子秤当前的数据来决定料斗的工作状态。   ◆ 控制信号输出任务。根据料斗状态,输出相应的各路控制信号。   ◆ 时钟任务。为系统提供时间基准,使各个任务可以按规定节奏来运行。   ◆ 睡眠任务。让系统在空闲时间里进入睡眠状态,以提高系统的抗干扰能力。   系统的软件结构如图3所示。左边是主程序,只安排了睡眠任务;右边是定时中断子程序,安排了其他所有任务。 图3  系统软件结构示意图   除配料控制任务外,其他任务运行一次的时间均远小于定时间隔,在每次定时中断中均可以完整地运行一次,故采用普通的编程方法将其运行过程写出来即可。配料控制任务无法在一次定时中断里完成,只能用不断“照看”的方法来完成。如果配料任务的运行时间(运行周期)为40 s,定时中断间隔时间为20 ms,则每次配料过程都是通过2000次“照看”来实现的。设配方有四种成分,则系统有四个料斗并行工作,“配料控制”任务的“照看”操作实际上由“照看料斗1”、“照看料斗2”、“照看料斗3”、“照看料斗4”组成(如图2所示),即每次定时中断都要依次“照看”四个料斗。四个料斗的“照看”操作方式基本相同。由于配方数据的差异,四个料斗的状态不一定每时每刻都同步。如果不考虑加料时的“落差”现象,就一个料斗而言,“照看”操作内容设计如表1所列。   配料过程由键盘操作来启动(使“允许配料”标志=1),以后各次配料操作由前一次配料的状态5来启动,直到完成预定的配料次数。   从表1中可以看出,所有的“照看”操作都是由“判断-分支”结构组成,操作时间也很短,满足设计要求。 3  小结        表1   在实时多任务系统中,为了保证系统的实时性,采用实时操作系统是首选设计方案;但在中低档系统中,为了简化设计和降低成本,利用本文介绍的方法,基于裸机编程同样可以满足要求。在中低档系统占有很大比例的产品市场中,本文介绍的编程方法对降低成本和提高产品竞争力显然是有帮助的。 系统分类: 汽车电子 用户分类: 单片机基础 标签: 无标签 来源: 无分类 发表评论 阅读全文(146) | 回复(0) 4 本周最热门”中出现,认为够“牛”就投上一票吧!" AutoHide="false"> 利用串口与并口实现51内核单片机的在线编程 发表于 2008-1-13 3:25:59 摘要 详细说明利用并口模拟I2C总线协议,实现Myson MTV230芯片的在线编程(ISP)过程,以及利用PC机的串口通信实现Winbond W78E516B的在线编程(ISP)过程;阐述PC机的串口与并口在单片机开发中的应用。 关键词 并口编程 串口通信 在线编程 ISP MTV230 W78E516B 1  在线编程简介   51内核的单片机在线编程模式一般分为两大类。一类是使用JTAG协议的在线编程模式。这类模式一般由厂家提供在线编程工具,使用方便。使用这一类模式的单片机价格往往较高,使用的厂商也不多,故不在本文的讨论之列。另一类在线编程模式是使用一条特殊的指令,使单片机进入在线编程模式。在进入在线编程模式后,要自己控制对单片机的擦除写入逻辑。这一类模式又可细分为两种不同的模式:一是进入在线编程模式后,单片机只是提供一个接口,不再运行用户的程序,擦写逻辑全由上位机(PC)提供,如以下要讨论的MTV230就属于这种模式;另一类是进入在线编程模式以后,芯片会运行在某一区域的用户编写的程序,芯片的编程逻辑都由芯片中这段程序控制,上位机(PC)只是作为单片机的一个数据源,向单片机传输要擦写的数据,如以下要讨论的W78E516B。 2  利用并口对MTV230在线编程的实现 2.1  MTV230简介   MTV230是由Myson公司出品的一块集成OSD功能的基于51内核的芯片。它使用12MHz晶振时可以设置为倍频工作,同时还集成了4路A/D和 4路PWM DAC。其中最具竞争力的便是它使用了Flash OSD字库。与一般的OSD芯片不同,它的字库不是掩膜在芯片中,用户可以自己定制。该款芯片可以满足视频应用中的控制需求,因而被广泛应用于视频类产品中。 2.2  MTV230在线编程模式的进入   要使MTV230具有在线编程的功能,可以添加一段程序在主应用程序中。该程序用来响应特定的单片机状态,如某一特定引脚的电平变化,或是串口接收到特定的字符以确定是否要进入在线编程模式。在执行以下程序后,MTV230可以进入在线编程模式[1]:   ①  清看门狗,以防止在编程期间单片机被复位;   ②  单片机的在线编程模式是在空闲状态(idle)下进行的,所以要关闭所有中断,防止单片机被唤醒;   ③  由于MTV230在线编程时是作为I2C的从设备,因而要配置单片机的I2C从地址;   ④  向ISPEN写入0x93,使能在线编程功能;   ⑤  进入51的空闲模式,在线编程开始。   具体程序如下:   WDT=0; //1   IE=0; //2   ISPSLV=0x7C; //3   ISPEN=0x93; //4   PCON=0x01; //5   以上程序中1~5与上述说明对应。以上将I2C地址设置为0x7C。值得注意的是,设置I2C从地址时,最低两位无效[1]。执行完以上程序,单片机已经变为一个I2C从设备,将I2C中SCL与芯片的15脚相连,SDA与芯片的16脚相连,就可以用I2C协议,按一定的命令格式对芯片进行在线编程。命令格式详见参考文献[1],在此不再赘述。 2.3  PC机I2C接口的实现   对MTV230进行在线编程,就要实现I2C通信协议。作为对MTV230进行编程的上位机PC来说,实现I2C有三种方法:   ①  使用串口与单片机通信,再由单片机模拟I2C协议,成本高,I2C速度视使用的单片机而定;   ②  对计算机的并口编程,模拟I2C协议,成本低,I2C速度一般;   ③  使用USB接口实现I2C协议,成本高,I2C速度快市场上可以买到。   由于MTV230进行编程时,I2C时钟速度最高为140kHz,速度要求不高,同时考虑到成本,决定使用方案②。 2.4  并口I2C硬件的实现   由于并口的每个引脚都是单向的,只能单向输出或者单向输入;而I2C又是一个双向协议,SDA与SCL都要求既能输入又能输出(有时要获取SCL当前状态),所以,SDA与SCL要分别各由一个输出引脚与一个输入引脚构成。为了增加并口的驱动能力与可靠性,设计电路如图1所示。其中并口的2、12引脚构成SDA脚,并口的3、10引脚构成SCL脚。 图1  并口I²C电路 2.5  并口I2C软件的实现   在Win98中对并口的编程非常简单,通过在VC中内嵌汇编,使用IN与OUT指令访问与并口相对应的端口,设置相对应端口的值中的位就可以控制相应并口引脚的高低电平值。   例如:要将计算机并口1的第2引脚先置高再置低,汇编语言可以这样写:   MOV DX , 0x378 ;设置端口地址   MOV AL , 1 ;将待写入的位0的值写入AL中   OUT DX , AL ;将值送到相应端口   MOV AL , 0   OUT DX , AL   但在Win2000/XP中,由于系统加强了对硬件设备的保护,假如在程序中直接用IN与OUT指令访问并口,则会引发系统的非法操作;而并口访问又不像串口,直接可以使用Windows API函数,因而就必须使用驱动程序。可以到网站上去下载DriverLINX Port I/O Driver并口驱动程序。该程序可以免费复制与分发。有了这个驱动程序,在Win2000/XP下编写并口程序就十分方便。安装该驱动程序后,在程序中包含相应的dlportio.h与dlportio.lib后就可以用DlPortReadPortUchar(IN ULONG Port)来读取端口的值(相当于汇编中的IN指令),用DlPortWritePortUchar(IN ULONG Port,IN UCHAR Value)来向一个端口写一个特定的值(相当于汇编中的OUT指令)。利用改变端口值中的一个位的值,可以使相应并口引脚输出高低电平,从而可以用其来模拟I2C协议,实现并口与单片机间的I2C通信。关于I2C协议,网上有很多资料,在此不再赘述。 2.6  程序说明   如前文所述,MTV230在进入在线编程模式后,就相当于一个I2C从设备,编程逻辑全都由在PC上运行的程序来实现。该程序采用VC6.0编写。编程程序的主界面如图2所示,主要模块如表1所列。由于用并口模拟I2C对单片机编程,会使该线程暂时处在阻塞状态,假如在主线程(UI)中实现该过程,则在对芯片编程时,程序的主界面就无法响应用户退出命令,所以采用了多线程程序结构,在一个工作线程实现该过程,使用户可以随时退出编程过程。 图2  编程程序主界面   表1所列的头三个类采用了层次设计结构:上层类调用下层类,下层类为上层类提供接口,这样设计保证了代码的最大可重用性。举例来说,假如有另一芯片同样是使用I2C接口进行在线编程,则只要重写MTVISP这个芯片的在线编程协议类就可以了;如果使用前面所述的并口实现方案1或3,只要重写最底层的 Parallel类便可。 表1  程序主要模块   程序工作线程的大致流程如图3所示。 图3  工作线程的流程   程序的特色:   ①  可以自己设置I2C速度的高低,模拟I2C的并口地址,以及使用并口的引脚。   ②  可以选择简单校验和完全校验,即对编程后的芯片是进行内部校验寄存器值的简单校验,还是将芯片中的内容全部读出与编程文件进行比较的完全校验。   ③  可以对芯片内的程序区、OSD区进行编程,还可以读出这两区的数据(只有对可以设定进入在线编 程模式的程序才可以)。   ④  进行烧写的文件支持二进制文件格式(*.bin)与Intel的Hex文件格式(*.hex)。 3  利用串口对W78E516B在线编程的实现 3.1  W78E516B简介   W78
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服