![[硕士论文精品]基于uclinux的电梯控制系统主控板的研制_第1页](http://file.renrendoc.com/FileRoot1/2017-12/8/37d178ef-2259-4ffd-8624-338156fe8b35/37d178ef-2259-4ffd-8624-338156fe8b351.gif)
![[硕士论文精品]基于uclinux的电梯控制系统主控板的研制_第2页](http://file.renrendoc.com/FileRoot1/2017-12/8/37d178ef-2259-4ffd-8624-338156fe8b35/37d178ef-2259-4ffd-8624-338156fe8b352.gif)
![[硕士论文精品]基于uclinux的电梯控制系统主控板的研制_第3页](http://file.renrendoc.com/FileRoot1/2017-12/8/37d178ef-2259-4ffd-8624-338156fe8b35/37d178ef-2259-4ffd-8624-338156fe8b353.gif)
![[硕士论文精品]基于uclinux的电梯控制系统主控板的研制_第4页](http://file.renrendoc.com/FileRoot1/2017-12/8/37d178ef-2259-4ffd-8624-338156fe8b35/37d178ef-2259-4ffd-8624-338156fe8b354.gif)
![[硕士论文精品]基于uclinux的电梯控制系统主控板的研制_第5页](http://file.renrendoc.com/FileRoot1/2017-12/8/37d178ef-2259-4ffd-8624-338156fe8b35/37d178ef-2259-4ffd-8624-338156fe8b355.gif)
已阅读5页,还剩65页未读, 继续免费阅读
[硕士论文精品]基于uclinux的电梯控制系统主控板的研制.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要摘要随着经济社会的发展和人民生活水平的提高,高层建筑和智能建筑的大量涌现,电梯在人们的日常生活中发挥着越来越重要的作用。随着现代电梯控制系统功能不断增加的需要,以及电梯智能化、安全性不断提高的要求,传统的继电器控制、PLC控制、单片机控制已经越来越不能适应现代电梯控制系统发展的需要。在电梯控制系统中采用32位的嵌入式系统已经成为电梯发展的必然趋势。本文以基于CAN总线的分布式智能电梯控制系统为背景,展开了UCLINUX嵌入式实时操作系统及电梯控制系统的研究。首先本文在全面综述电梯控制系统国内外发展现状和UCLINUX嵌入式实时操作系统的特点的基础上,对开发任务所提出来的电梯控制系统做了全面的需求分析。针对该需求分析本文提出了硬件和软件的总体的解决方案,指出了采用嵌入式实时操作系统开发一个安全、高效的控制系统是目前控制领域发展的趋势。接着利用ARM构建电梯控制系统的主控板硬件平台,详细阐述了硬件各个模块的设计原理,并分析了BOOTLOADER的启动过程,在该硬件平台上完成了BOOTLOADER及UCLINUX嵌入式操作系统的移植。然后编写了CAN、SPI总线等相关驱动程序,大大减低了整个系统设计的复杂性;设计了电梯的跑层逻辑控制算法,实现了正常模式下的逻辑运行;完成了以太网的SOCKET通信,实现了电梯的监控运行;同时,移植和设计了SQLITE实时数据库,完成了的电梯运行参数的存储与读取。最后本文详细阐述了该系统的硬件、驱动、应用程序的整个测试过程,并在电梯模拟机上的实际测试效果验证了该主控板设计的合理性与实用价值。关键字ARM;UCLINUXCAN总线;SQLITE数据库;电梯跑层算法ABSTRACRABSTRACTWITHTHEDEVELOPMENTOFSOCIALECONOMYANDTHEIMPROVEMENTOFPEOPLESLIVINGSTANDARD,MOREANDMOREHIGHANDINTELLIGENTBUILDINGSAREREQUIREDTHEELEVATORPLAYSMOREANDMOREIMPORTANTROLEINPEOPLESDAILYLIFETHETRADITIONALRELAYCONTROLERS,PLCCONTROLERSANDSINGLECHIPCONTROLERSCOULDNOTADAPTTOTHENEEDSOFTHEDEVELOPMENTOFMODEMELEVATORINTHEELEVATORCONTROLSYSTEM,WITHTHEINCREASINGFUNCTIONSOFTHEMODEMELEVATORCONTROLSYSTEMANDREQUIREMENTSOFELEVATORSINTELLIGENCEANDSECURITYUSING32一BITEMBEDDEDSYSTEMHASBEENBECOMINGANINEVITABLETRENDINTHEDEVELOPMENTOFELEVATORCONTROLSYSTEMASTHEBACKGROUNDOFTHEDISTRIBUTEDINTELLIGENTELEVATORCONTROLSYSTEMBASEDONTHECANBUS,THEEMBEDDEDREALTIMEOPERATINGSYSTEMSUCLINUXANDTHEELEVATORCONTROLSYSTEMHAVEBEENREACHEDINTHISPAPERFIRSTLY,ITSBEENINTRODUCEDOFTHEDEVELOPMENTOFELEVATORCONTROLSYSTEMHOMEANDABOARDANDTHEFEATURESOFTHEEMBEDDEDREALTIMEOPERATINGSYSTEMUCLINUXCOMPREHENSIVEANALYSISOFREQUIREMENTHASBEENMADEFORTHEELEVATORCONTROLSYSTEMARMINGATTHEREQUIREMENTOFTHEELEVATORCONTROLSYSYTEM,THEOVERALLSOFTWAREANDHARDWARESOLUTIONSBEENPOINTEDOUT,INTHISPAPERITSATRENDOFTHEDEVELOPMENTOFCURRENTCONTROLFIELDTODEVELOPASAFEANDEFFICIENTCONTROLSYSTEMUSINGTHEEMBEDDEDREALTIMEOPERATINGSYSTEMSECONDIYARMCHIPHASBEENUSEDTOCONSTRUCTHARDWAREOFELEVATORSMAINBOARDINTHISPAPERDESIGNINGPRINCIPLESOFEACHHARDWAREMODULEWASELABORATED,STARTUPPROCESSOFBOOTLOADERWASANALYSED,THEBOOTLOADERANDTHEUCLINUXWEREPORTEDTOTHISHARDWAREPLATFORMTHIRDLY,THECANBUS,SPIBUSDRIVERSWEREDESIGNEDTOREDUCETHECOMPLEXITYOFTHEWHOLESYSTEM;ASINGLEELEVATORSMNALGORITHMHASBEENINTRODUCEDTOACHIEVETHEELEVATORCONTROLLOGIC;THESOCKETCOMMUNICATIONOFETHEMETWASFINISHEDTOREALIZETHEMONITORINGOPERATIONOFTHEELEVATORMEANWHILE,THEREALTIMESQLITEDATABASEWASPORTEDANDDESIGNEDFORREADINGANDWRITINGTHEPARAMETERSOFELEVATORABSTRACTLASTLY,THEWHOLETESTINGPROCESSOFTHEHARDWARE,DRIVERSANDAPPLICATIONOFTHEELEVATORCONTROLSYSTEMWASDESCRIBEDINTHISPAPERANDTHESYSTEMWASAPPROVEDTOBEREASONABLEANDHAVINGAPRACTICALVALUETHROUGHEFFECTSOFTHETESTINGUNDERTHEPLATFONNOFELEVATORSSIMULATIONMACHINEKEYWORDSARM;UCLINUX;CANBUS;SQLITEDATABASE;RUNALGORITHMOFELEVATOR厦门大学学位论文原创性声明本人呈交的学位论文是本人在导师指导下,独立完成的研究成果。本人在论文写作中参考其他个人或集体已经发表的研究成果,均在文中以适当方式明确标明,并符合法律规范和厦门大学研究生学术活动规范试行。另外,该学位论文为课题组的研究成果,获得课题组经费或实验室的资助,在实验室完成。请在以上括号内填写课题或课题组负责人或实验室名称,未有此项声明内容的,可以不作特别声明。厦门大学学位论文著作权使用声明本人同意厦门大学根据中华人民共和国学位条例暂行实施办法等规定保留和使用此学位论文,并向主管部门或其指定机构送交学位论文包括纸质版和电子版,允许学位论文进入厦门大学图书馆及其数据库被查阅、借阅。本人同意厦门大学将学位论文加入全国博士、硕士学位论文共建单位数据库进行检索,将学位论文的标题和摘要汇编出版,采用影印、缩印或者其它方式合理复制学位论文。本学位论文属于1经厦门大学保密委员会审查核定的保密学位论文,于年月日解密,解密后适用上述授权。2不保密,适用上述授权。请在以上相应括号内打“”或填上相应内容。保密学位论文应是已经厦门大学保密委员会审定过的学位论文,未经厦门大学保密委员会审定的学位论文均为公开学位论文。此声明栏不填写的,默认为公开学位论文,均适用上述授权。碑旁第一章绪论11引言第一章绪论电梯是为高层建筑运输服务的比较复杂的机电一体化设备。在传统的电梯控制系统设计中,主要采用的是继电器控制、PLC控制、单片机控制等控制手段。随着高层建筑物的发展,对电梯控制系统的可靠性,快速性等提出了要求越来越高随着现代社会经济发展的需要和人民生活水平的提高,对电梯的智能性,安全性也提出了更高的要求。传统的电梯控制手段也越来越不适应现代电梯控制系统发展的需要,在电梯控制系统中采用32位嵌入式系统已经成为电梯控制系统发展的趋势LL圳。嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式系统的概念出现在20世纪70年代。当时,由于嵌入式软件开发大多数是基于处理器直接编写,不能将系统软件和应用软件分开处理,它只能应用于某种特定的微处理器,这导致了嵌入式软件开发周期长,重复劳动严重,可移植性差等不足。随着嵌入式系统中软件比重不断上升,应用程序越来越大,也越来越复杂,对开发人员、应用程序接口、程序档案的组织管理成为一个大的难题,可以说传统的开发模式己经严重制约了嵌入式软件的发展。嵌入式实时操作系统的引入相当于引入了一种新的开发与管理模式,很好的解决了上述问题。本文设计的电梯控制系统,采用32位的ARM处理芯片,能够满足电梯的智能性、可靠性、安全性和快速性的要求。与采用传统的485总线通信方式相比,本文采用CAN总线在内呼板、外呼板和主控制板之间进行通信,具有更高的响应速度以满足高速电梯控制的要求;同时采用开源、免费的UCLINUX嵌入式操作系统使得整个系统更具安全可靠,而且大大减低了整个系统的成本,并使得整个系统的具有很好的可移植性、扩展性和可维护性;本文设计的单台电梯的跑层控制逻辑算法,具有控制方法简单、执行效率较高、系统资源更加优化、控制效果基于UCLINUX的电梯控制系统主控板研制更好等特点;通过SQLITE实时数据库,能够对电梯的参数迸行实时的存取管理,而且还能够及时掌握电梯运行状态及故障发生的时间、原因等详细信息。目前,高端的电梯控制系统基本上被国外的电梯控制厂商所占有,本文设计的电梯控制主板对于国内高端电梯的设计具有实际的参考价值。12课题研究的来源及意义本课题来源于实验室与厦门汉京自动化控制系统有限公司合作开发的“64层电梯控制系统”项目中主控制器的研制。电梯控制系统作为一种复杂的逻辑控制系统,系统要在短时间内对多个信号进行检测、处理,加上电梯系统对安全性能要求较高,使得电梯的控制和管理比较复杂,现有国内的电梯控制系统大多数采用继电器、PLC作为电梯的控制核心,对每层楼进行点对点控制,进一步加大了电梯的复杂性,给电梯的安装、调试、以及扩展带来了许多麻烦691。主控制器作为电梯控制系统的核心,其任务包括接收、处理电梯的各种状态,并做出相应的动作,控制电梯的总体运行;实旄对电梯驱动部分的控制,包括抱闸的松放,门机的开关,变频器低、中、高速的给出等控制接收轿厢控制器送来的内选信号;执行内选外呼指令向轿厢控制器、呼梯控制器发送楼层指示信号实施安全保护等。电梯主控系统,是一个功能繁多,运行复杂的控制系统,电梯每一步运行都要考虑到各种安全问题。也就是说主控制器不仅要完成复杂的逻辑控制、还要实现多任务管理,数据通讯、数据处理、安全监测及实时响应的功能。随着计算机硬件、软件技术和集成电路技术的迅速发展,以嵌入式实时操作系统作为开发平台的嵌入式系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大的进步。本文所描述的智能电梯主控制器以嵌入式实时操作系统为开发平台,以高性能的嵌入式处理器为核心,这种结构可以有效的提高系统的可靠性、实时性、维护性、可升级性和软件编程的灵活性。13课题研究的国内外发展现状在过去的100多年,中国电梯行业的发展经历了以下几个阶段;1对进口电梯的销售、安装、维保阶段19001949年,这一阶段我国电梯拥有量仅约1102第一章绪论多台;2独立自主,艰苦研制、生产阶段19501979年,这一阶段我国共生产、安装电梯约L万台;3建立三资企业,行业快速发展阶段自1980年至今,这一阶段我国共生产、安装电梯约40万台。目前,我国已成为世界最大的新装电梯市场和最大的电梯生产国。传统的电梯控制系统各楼层与控制器之间采用以PLC为控制核心的点对点的连接方式,每个呼叫器都有一套数据线与主控器相连,当电梯楼层数比较多时,系统就会有大量的数据线需要连接,使得电梯的安装、维护比较麻烦。特别是不同楼层数的控制系统需要有相应输入输出点数的主控制器相匹配,通用性差,给生产带来许多不便【10121。以嵌入式处理器为核心控制器的嵌入式系统作为计算机应用的一个崭新领域,以其简洁、高效等特点越来越多地受到人们的广泛关注。而且在工业控制系统中己得到了广泛的应用,应用于电梯控制系统,具有很大的优越性【13D4】。电梯控制系统硬件上采用嵌入式微处理器作为控制核心,以现场总线作为通讯总线,各控制器之间只需通过双绞线通过网络拓扑结构连接即可,安装极为方便,对于不同楼层数的控制系统只需在现场总线中加入相应数目的呼梯控制器即可,主控器硬件软件不需做任何改动。使得电梯控制系统安装更加灵活方便。但是随着对电梯运行速度、逻辑功能的要求越来越高,常用的8位、16位单片机己经逐渐不能满足快速处理、实时响应和系统结构高效、简洁的需求。目前国内的电梯控制系统还是以PLC和8位单片机为主,软件编程采用的还是以无嵌入式实时操作系统的单任务循环的前后台编程方式,使得电梯控制系统的实时性、稳定性和软件编程的灵活性己不能满足电梯控制系统功能和速度的要求。随着各种高速、高集成的嵌入式处理器的飞速发展,包括采用32位高性能的嵌入式处理器广泛应用于工业控制系统【5之O】。14本文研究内容本文把UCLINUX嵌入式实时控制操作系统成功的应用于电梯控制系统,采用CAN总线作为系统的通信方式;同时,研究电梯控制系统的跑层逻辑控制算法,采用SQLITE开源数据库存、取和管理整个控制系统的参数数据。文本研究的主要内容如下基于UCLINUX的电梯控制系统主控板研制1首先本文利用ARM构建电梯控制系统的主控板硬件平台,采用基于ARM7TDMI内核LPC2292处理器,该处理器有着三级流水线、哈佛结构、低功耗、高性能等特点,能够满足电梯的智能化、可靠性和安全性的要求。2然后在上述的硬件平台上完成了UBOOTBOOTLOADER和UCLINUX操作系统的移植,这样大大降低了系统设计的复杂性和提高了系统的可扩展性和可升级性。3并在基于UCLINUX嵌入式操作系统的基础上,编写了CAN、SPI总线和GPIO等相关驱动程序。采用CAN总线可以提高电梯控制系统的可靠性和快速性。驱动程序的编写使得这个应用程序对外围设备的操作复杂性大大减低。4接着设计了电梯的跑层逻辑控制算法和电梯控制系统的运行逻辑曲线,电梯跑层算法是电梯跑层逻辑控制运行的核心,实现了电梯的实际控制运行,电梯的运行逻辑曲线,使得电梯提高了电梯运行的舒适性和可靠性。5最后在厦门汉京电梯控制系统有限公司的电梯模拟机上的实际测试效果验证了该主控板设计的合理性与实用价值,为其他的高端电梯的设计具有一定的参考价值。4第二章系统硬件平台设计第二章需求分析及硬件平台设计21主控制器需求分析电梯控制器主要是接收各种井道内的各种信号、门控信号、编码器信号等经过逻辑判断处理对电机的运转和门机进行控制,为高层建筑物提供一种安全,舒适,高效的运输工具的作用。如图21中所示的是电梯控制系统井道中几个最为重要的传感器信号。图中的上下平层信号能够提供电梯停车,平层的依据,即当轿箱信号能够检测到上下平层信号时,电梯处于平层状态,否则,电梯则处于非平层信号;上下强减,高速辅助强减,中速辅助强减信号能够保证电梯的安全运行,使得电梯处于可控状态,控制“飞车“的严重事故;上下限位信号,保证电梯的安全性,使得电梯的运行限制楼层的范围内【21】。提前上极限上限位上强减高速辅助强减强中速辅助强减强下强减下限位下极限图2一L井道中主要信号本文根据厂家提供的电梯控制系统开发任务书,把电梯的运行分成八种情况正常运行、自学习运行、检修运行、司机运行、消防运行、故障运行、锁梯运行、UPS及发电机运行。1正常运行电梯大部分运行时间都处于正常运行状态,按轿厢运行时在井道中所处的位置可分为平层区状态和非平层区状态。1平层区状态电梯一旦检测到平层区标志,就要进入平层区状态,根据呼叫基于UCLINUX的电梯控制系统主控板研制计算以决定停车、等待还是继续运行。如果电梯到达运行目的楼层,系统进入停车模式。考虑到电梯的顺利停车和启动、乘客安全、机械部分的损坏等问题,系统必须按照一定的规则停车和启动。2非平层区状态电梯处于非平层区状态时,主要完成电梯在运行途中系统通过CAN总线与呼梯、轿厢的通信,提出登记楼层呼叫情况,并计算电梯运行目标楼层,决定电梯运行的速度和方向,以及计算即将到达的目的地是否停车等。2检修运行检修状态是电梯控制系统中最基本的运行部分,是电梯安装、调试必不可少的状态。在电梯初次安装、调试、或出现故障时,调用最基本、最简单的运行功能,以便解决其它问题。要求能够采用两段速的形式运行。3自学习运行为了增加电梯控制系统的智能化程度,本文加入了自学习功能。由于安装电梯的高楼楼层高度不统一,对于电梯控制系统来说,必须预先知道楼层的高度,以便准确、及时的改变运行速度、减速停车,因此主控制器通过读取电梯曳引机端的脉冲编码器在电梯上下运行的行程所发出的脉冲数来得到电梯所在楼层的层高。在传统的电梯控制系统中,为了取得大楼楼层的高度,安装调试的时候采用检修运行方式,手动控制电梯的上下运行,通过观察电梯主控系统的脉冲计数器所读到的数值,人工的计录下楼层的高度值。在本系统中,引入了自学运行,即自动完成楼宇高度脉冲的读取、纪录、保存,并自动检测大楼楼层数。给电梯安装调试带来了很大的方便。4司机运行开启司机开关,电梯进入司机运行状态。在司机运行状态下,主控制器只响应轿厢内呼信号,当有外呼时内呼本层钮灯会闪烁并有蜂鸣器提示声,但会登记外召可不自动响应,由轿厢司机决定是否响应外呼请求。5消防运行开启消防开关,电梯进入消防运行状态。消防状态是电梯系统在楼层发生火灾的情况下,为了保护乘客的安全以及方便消防人员救火救人而设置的一种功能状态。由于每个国家和地区的消防的要求的电梯的标准有所不同,所以在进行该项功能设计的时候,本文根据电梯控制系统的销售地区,分成按地区分成了中国6第二章系统硬件平台设计大陆,台湾,新加坡。6故障运行对于电梯控制系统来说,其安全问题尤为重要。能够及时发现、解决系统的电子、机械问题,并显示相应的故障代码,指明故障情况,将对电梯故障的预防、故障出现后电梯的检修带了很大的帮助。一般来说,电梯控制系统中的故障包括控制电路的器件故障,包括元件老化、失灵、损坏等情况,还有变频器运行故障,分布式控制系统的串行通讯故障,门联锁、抱闸接触器、主接触器等机械故障等。7锁梯运行当锁梯信号进入若此时电梯正在运行且已有数层内外选登记,此时电梯不响应任何外呼梯,只将所登记的内选层站输送完毕再自动返回锁梯基站若无内选登记,则电梯直接返回锁梯基站。到基站后电梯不再响应任何内选;等待关门时间到达后电梯自动关好门,切断轿内的照明与风扇和变频器的输入电源的输出,并关闭厅外及轿内楼层显示。若此时有人员还留在轿厢内只需按下任一内选或开关门按钮轿内照明立即恢复;按动开按钮开门后等待被动开门时间到后又自动执行关门,关好门后再切断以上继电器。8UPS及发电机运行当供电系统发生故障时候,UPS及发电机运行,这时候进入UPS及发电机的运行模式,这一模式是为了保证在电梯的供电系统突然发生故障的情况下,电梯能够把轿厢内的乘客安全的送到楼层。电梯控制系统的主控板除了完成以上的主要的运行状态以外,还应当具有以太网接口能够实现对电梯运行状态的实时监控,还应该具有故障的存储,查找等功能阎。22硬件平台总体结构电梯控制系统的硬件平台如下图22所示由于考虑到课题开发的电梯控制系统的需求分析,以及本电梯控制系统要达到高速电梯速度6MS的要求,本文设计的硬件平台采用双CPU的模式进行设计。主控芯片采用LPC2292,该CPU是32位基于ARM架构,采用ARM7TDMI内核,主要用来作为电梯的控制,信息的获取,网络监控的实现等;辅助CPU采用8位的ATMEL128,主要用7基于UCLINUX的电梯控制系统圭控板研制来作为辅助编码器信息的采集,电梯状态信息的数码管显示等。图22总体结构构图主要的外围电路如上图所示2MB的NORFLASH芯片SST39VFL60,用来存储初始化硬件和引导操作系统启动的BOOTLOADER8MB的NANDFLASH芯片MT45W4MWL6M来存储编译好的UCLINUX内核、文件系统以及电梯控制系统的应用程序;16MB的SDRAM芯片,用来加载BOOLOADER、操作系统和应用程序的运行;CPLD芯片用来做IO扩展,同时作为第二路的编码器计数器的功能,单片机同时作为编码器的采集,这样可以使系统具有较高的安全性以及能够满足高速电梯的要求即最高速度达到6MS;两路的CAN总线,一路用来与内外召之间进行通信,另外一路用来作为并控、群控使用;SPI总线,用来作为与8位单片机之间进行通信使用;以太网芯片,主要用来作为主控板的参数设定的传输,以及用来作为远程监控使用。23硬件平台电路原理231主控芯片LPC2292介绍主控芯片采用PHILIPS的LPC22XX系列的LPC2292ARM7。LPC2292是一款32位基于ARM7TDMIS,并支持实时仿真和跟踪的CPU,并带有256K字节第二章系统硬件平台设计KB嵌入的高速FLASH存储器;128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行;对代码规模有严格控制的应用可使用16位THUMB模式将代码规模降低超过30,而性能的损失却很小。LPC2292采用144脚封装、极低的功耗、多个32位定时器、8路LO位ADC、2路高级CAN通道、PWM输出以及多达9个的外部中断,这款微控制器特别适合自动化、工业控制、医疗系统、访问控制和故障容限维护总线等应用领域。其内部可用GPIO范围为76脚外部存储区到112脚单片。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器、嵌入式软件调制解调器以及其它各种类型的应用【23。7J。LPC2292其主要的特性如下拥有16KB的片内SRAM256KB的片内FLASH程序存储器,128位的宽度接口加速器,可实现高达60MHZ工作频率;可加密全球首个实现可加密的ARM微控制器;通过片内BOOT装载程序实现在系统编程ISP和在应用编程IAP。512字节行编程时间为LMS;单扇区或整片擦除时间为400MS;拥有2路互连的CAN接口,带有先进的验收滤波器,另有2路UART16C550,高速12C400KBITS及2路SPI总线;8路10位AD转换器,转换时间低至244US带有2个32位定时器带4路捕获和4路比较通道、PWM单元6路输出、实时时钟和看门狗;多达112个通用IO口可承受5V电压,9个边沿或电平触发的外部中断引脚;CPU的最大工作晶振为60MHZ,并内嵌片内可编程锁相环PLL。232电源、复位和SIAG仿真电路1电源电路主控板采用LPC2292ARM7微控制器,需要使用两组电源,采用LM259633芯片为CPUIO口提供33V电源,采用LMLLL718为内核及片内外设提供18V电源。输入两路24V直流电源,一路经CJI如图23所示,必须通过短导线,使其9基于UCLINUX的电梯控制系统主控板研制靠近LM2596,这个电容可以防止在输入端出现过大的瞬态电压,同时为LM2596在每次开关时提供瞬态电流滤波后,通过LM2596将电源稳压输出33V。输出电容CJ2用来对输出滤波以及提高环路的稳定性,在设计开关调节器的应用中,必须使用小阻抗或低等效电阻LOWESR的电解电容或固态钽电容。在LM2596的应用中,需要一个吸纳二极管D1来为电感电流当开关闭合时提供通路,这必须是一个快速二极管且要靠近LM2596,管脚要短、相连接的导线也要短。另一路先通过二极管D2防止电源反接,经过CJ4滤波,然后通过LM2575将电源稳压至5V,再使用LMLLL7稳压输出1SV电压。LM2596可输出3A的驱动电流,同时具有很好的线性和负载调节特性,输出电压精度高,稳定性好;LMLLL7输出电流可达800MA,输出电压的精度在1以内,具有过热保护和限流保护功能,使用时加电容C13来改善瞬态响应和稳定性。LPC2292具有独立的模拟电源和模拟地引脚,为了降低噪声和出错几率,使用10UH的电感L2,L3,L4,L5,L6实现模拟电源与数字电源隔离将高频噪声隔离,并且在设计PCB板时采用大面积敷地,以降低噪声。,芷;F2复位电路图23系统电源10第二章系统硬件平台设计由于ARM芯片的高速、低功耗和低工作电压导致其噪声容限低,对电源的纹波、瞬态响应性能、时钟源的稳定性和电源监控可靠性等诸多方面提出了更高的要求。主板复位电路采用带手动复位的电源监控芯片CATL025SWI30复位门槛电压为3O315V,为ARM7及ATMEGAL28提供复位信号,提高了系统的可靠性,复位信号采用低电平有效;同时,使用CATL025SWI一30时应该注意,其RESET和RESET引脚上的下拉电阻和上拉电阻不能省略。电路原理图如图24所示。TN,3JTAG仿真电路DD33翁趸AT两一111一上JTDISTAIS7TK9RT1KLL图24系统复位电路三旦Q皇主28714装FLASHIDFLASHSSTL601;INFOSECTOR_COUNT32;INFOSIZE0X00200000;BREAK;基于UCLINUX的电梯控制系统主控板研制注释下面的代码是建立FLASH的BLOCK的分区地址表,我们的BLOCK的大小是64KB0X10000从下面的代码看出,需要将IFDEFCONFIGLPCINFOSTARTI】BASEI0X00020000;ELSEINFOSTARTI】2BASEI畚OX00010000;ENDIF修改成IFDEFCONFIGLPCINFO一STARTI】BASEI幸0X00010000;ELSEINFO一STARTI】BASEI幸OX00020000;ENDIF其次在检查一下FLASH_GET_OFFSETS函数,发现里面的偏移也是64KB,故不用修改。至此FLASHINIT函数修改完毕。然后我们来检查一下FLASH的写函数和擦除函数INTFLASHERASEFLASHINFOT宰INFO,INTSFIRST,INTS_LAST根据我们FLASH的特点,将ADDRCFQFLASH_ADDR0CFG_FLASH_WORDSIZE0X00AA00AA;ADDRCFQFLASH_ADDRLCFG_FLASH_WORD_SIZE0X00550055;ADDRCFQFLASHADDR02CFG_FLASH_WORD_SIZE0X00800080;ADDRCFGFLASHADDR0】2CFQFLASH_WORD_SIZE0X00AA00AA;ADDRCFG_FLASH_ADDRL】。CFQFLASH_WORD_SIZE0X00550055;AAAR2O】CFG_FLASH_WORD_SIZE0X00500050;改为ADDRCFG_FLASHADDR0】2CFG_FLASH_WORD_SIZE0X00AA;ADDRCFG_FLASH_ADDRL】2CFQFLASH_WORD_SIZE0X0055;ADDRCFG_FLASH_ADDR0】2CFQFLASH_WORD_SIZE0X0080;ADDRCFG_FLASH_ADDR0】5CFG_FLASH_WORD_SIZE0X00AA;ADDRCFQFLASHADDRL】5CFQFLASH_WORD_SIZE0X0055;24第四章内核层的移植实现ADDR20CFG_FLASH_WORD_SIZE0X0050;下面还有扇区擦出的命令字也按这种方式改。将WHILEADDR0CFG_FLASH_WORD_SIZE0X00800080CFG_FLASHWORD_SIZE0X00800080ADDRO】CFG_FLASH_WORD_SIZE0X00F000F0;改为WHILEADDROCFG_FLASH_WORD_SIZE0X00S0TCFG_FLASH_WORD_SIZE0X0080ADDR0】CFG_FLASH_WORD_SIZE0X00F0;按照上面的方法修改STATICINTWRITEWORDFLASH_INFO_T宰INFO,ULONGDEST,ULONGDATA种对应的项。在FLASH_PRINTINFOFLASHINFO_T幸INFO加入CASEFLASHSSTL601PRINTF”SST39LFVFL60116MBIT,UNIFORMSECTORSIZEN”;BREAK;4CPUARM7TDMISERIALC主要是对串口的各种操作。修改如下由于咱们的FOSC修改了,所以串口的波特率参数的设置需要改变数值。CASE1200DIVISOR576;BREAK;CASE9600DIVISOR72;BREAK;CASE19200DIVISOR36;BREAK;CASE38400DIVISOR18;25基于UCLINUX的电梯控制系统主控板研制CASE57600DIVISOR12;CASE115200DIVISOR6;UOLCR0X83;IFDIVISOR576UODLLOX40;UODLM0X02;ELSEUODLLDIVISOR;5CPUARM7TDMISTARTS是最先运行的代码,主要是异常向量表、外部存储器的配置、PLL配置,REMAP以及UBOOT和异常向量表的复制。修改如下LDRR0,PINSEL2LDRRL,0XOF814914STRRL,JR0】LDRR0,BCFG0LDRR10X10001460STRRL,JR0】LDRR0BCFGLLDRRL,0X10001460STRRL,IT0】LDRR0,BCFG2LDRRL,0X10001460STRR1,呷】第四章内核层的移植实现LDRR0BCFG3LDRR10X10001460STRRL,JR0】42UCLINUX的移植、配置和编译在这里主要做的是芯片级的移植,当前UCLINUX已经支持了无MMU的ARM体系结构。由于我FFLPC2292处理器,因此我们只要添加与LPC2292处理器相关的代码即可【4】。尽管UCLINUX中已支持了相应的体系架构,但由于具体处理器设计要求不同,因此各种基于ARM7处理器核的芯片的存储系统不同,片内外设不同,具有的中断源也不同,大部分ARM7处理器的中断系统也大不相同,可以说,对于ARM平台的芯片级移植的很多工作都集中在对底层中断系统的修改上。主要是修改体系架构和机型相关的代码、中断相关的代码、修改MAKEFILE和配置菜单【32】O1增加体系架构和硬件相关的代码1首先添加机型号。给要移植的LPC2292处理器随机选择了一个机型的序号,在INCLUDEASMARMNOMMUMACHTYPESH中添加硬件系统的结构号。但MACHTYPESH是一个编译时自动生成的文件,手动修改的内同在下次编译时会被覆盖。每次编译时,ARCHARMNOMMUTOOLSGETMACHTYPES会读取ARCHARMNOMMUTOOLSMACHTYPES文件,然后产生INCLUDEASMARMNOMMUMACHTYPESH文件,因此需要修改的应该是ARCHARMNOMMUMACHTYPES文件,方法是在文件的最后一行加上LPCARCHLPCLPC912接着添加机型的数据结构。在文件ARCHARMNOMMUMACHLPCARCHCO在该文件里实现了一个机型的数据结构MACHINEDESE,然后用MACHINEJTART,MAINTAINER,BOOTMEM,FIXUP,INITIRQ,MACHINEEND这些宏填充到MACHINEDESC中,其中FIXUP_LPC0函数用于初始化内存的数据结构MEMINFO,会在启动时被调用。3最后添加LPC2292的启动代码。在LINUX一24XARCHKERNELHEADARMVS中添加基于UCLINUX的电梯控制系统主控板研制启动代码,读出前面添加的处理器序号和机型序号。这些代码基本上对于所有ARM处理器都是类似的,在这个文件中添加一段类似于其他ARM处理器的启动代码,完成针对LPC2292的PROEESSORID和_MACHINE_ARCH_TYPE赋值。2添加中断系统LPC2292的中断系统提供了32个中断源,可把它们分为3类快速中断、向量化的中断和非向量化的中断。主要的寄存器如下。VICRAWLM中断状态寄存器,记录了系统发生的中断。VICVECTADDRO15记录了中断向量O15这16个向量中断处理函数的地址。VICVECTADDR记录了发生中断处理函数的地址。在发生向量中断时,处理器会把发生中断的中断处理函数即把上面16个寄存器中相应寄存器的内容拷贝到该寄存器中。ARM平台共有七种模式,中断时其中一种。当硬件产生中断异常之后,CPU会跳转到相应的异常处理函数去处理中断异常。也就是0X18地址,在这个地址上LINUX放了一条跳转语句BREALSTUBSSTARTVECTORIRQSTUBSSTART3移植时钟驱动和串口驱动对于最基本的系统,串口和时钟是必不可少的。串口起到了输入输出的作用,而时钟则是整个操作系统的心跳。1时钟驱动程序最主要的功能是定时产生一个中断,两个时钟中断之间的时间间隔是确定的,这样就能为一些具有时钟驱动或者周期运行的任务提供服务。这个时钟间隔可通过硬件来设定。修改INCLUDEASMARMNOMMUARCH1PCTIMEH在UCLINUX内核启动时,会调用函数SETUP_TIMERO,把KERNEL_TIME_IRQ_NUM这个中断号和TIMEIRQ时钟相关的函数挂载起来,这样当发生时钟中断时,就会调用LPC_TIMERINTERRUPT时钟的中断处理函数来进行处理。2串口驱动程序主要作为输入输出和系统的调试使用。LPC2292处理器内置了两个串口UARTO和UARTL。其主要特点有带有16字节的接收和发送FIFO;寄存器结构符合550工业标准;接收FIFO可在1、4、8、14字节时分别触发;内置波特率发生器。在UCLINUX中已提供了支持标准串口的驱动程序,只需要添加一个宏来定义LPC2292串口的IO基地址,使用中断号等与硬件相关的一些第四章内核层的移植实现信息,串口的驱动程序就完成了4完成系统的配置和编译使用MAKECONFIGMAKEMENUCONFIGMAKEXCONFIG对UCLINUX的内核进行配置。厂商选择PHILIPS,产品选择LPC2292,内核和库版本,分别选择LINUX24X和UCLIBC。然后根据需要对内核的选项进行选择。最后采用命令MAKEAEP、MAKE,对内核进行编译。43文件系统的设计实现431LINUX嵌入式文件系统介绍LINUX支持多种文件系统,包括EXT2、EXT3、VFAT、NTFS、IS09660、IFFS、ROMFS和NFS等,为了对各类文件系统进行统一管理,LINUX引入了虚拟文件系统VFSVIRTUALFILESYSTEM,为各类文件系统提供一个统一的操作界面和应用编程接EL。LINUX下的文件系统结构如图42所示,在嵌入式LINUX下,MTDMEMORYTECHNOLOGYDEVICE,存储技术设备为底层硬件闪存和上层文件系统之间提供一个统一的抽象接口,即FLASH的文件系统都是基于MTD驱动层的。使用MTD驱动程序的主要优点在于,它是专门针对各种非易失性存储器以闪存为主而设计的,因而它对FLASH有更好的支持、管理和基于扇区的擦除、读写操作接口【33】。图42LINUX文件系统结构基于UCLINUX的电梯控制系统主控板研制LINUX启动时,第一个必须挂载的是根文件系统,若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场合。在嵌入式LINUX应用中,主要的存储设备为RAMDRAM,SDRAM和ROM常采用FLASH存储器,常用的基于存储设备的文件系统类型包括JFFS2,YAFFS,CRAMFS,ROMFS,RAMDISK,RAMFSTMPFS等。1基于FLASH的文件系统闪存主要有NOR和NAND两种技术。FLASH存储器的擦写次数是有限的,NAND闪存还有特殊的硬件接口和读写时序。因此,必须针对FLASH的硬件特性设计符合应用要求的文件系统;传统的文件系统如EXT2等,用作FLASH的文件系统会有诸多弊端。1JFFS文件系统JFFS文件系统最早是由瑞典AXISCOMMUNICATIONS公司基于LINUX20的内核为嵌入式系统开发的文件系统。JFFS2也可以用在LINUX,UCLINUX中。JFFS2是日志闪存文件系统版本2JOUMALLINGFLASHFILESYSTEMV2,主要用于NOR型闪存,基于MTD驱动层,特点是可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃掉电安全保护,提供“写平衡”支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使JFFS2的运行速度大大放慢。2YAFFS文件系统YAFFSYAFFS2YETANOTHERFLASHFILESYSTEM是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。与JFFS2相比,它减少了一些功能例如不支持数据压缩,所以速度更快,挂载时间很短,对内存的占用较小。另外,它还是跨平台的文件系统,除了LINUX和ECOS,还支持WINCE,PSOS和THREADX等。3CRAMFS文件系统CRAMFSCOMPRESSEDROMFILESYSTEM是一种只读的压缩文件系统。它也基于MTD驱动程序。在CRAMFS文件系统中,每一页4KB被单独压缩,可以随机页访问,其压缩比高达21,为嵌入式系统节省大量的FLASH存储空间,使系统可第四章内核层的移植实现通过更低容量的FLASH存储相同的文件,从而降低系统成本。CRAMFS文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行,另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。4ROMFS文件系统传统型的ROMFS文件系统是一种简单的、紧凑的、只读的文件系统,不支持动态擦写保存,按顺序存放数据,因而支持应用程序以XLPEXECUTEINPLACE,片内运行方式运行,在系统运行时,节省RAM空间。UCLINUX系统通常采用ROMFS文件系统。2基于RAM的文件系统1RAMDISKRAMDISK是将一部分固定大小的内存当作分区来使用。它并非一个实际的文件系统,而是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统。将一些经常被访问而又不会更改的文件如只读的根文件系统通过RAMDISK放在内存中,可以明显地提高系统的性能。在LINUX的启动阶段,INITRD提供了一套机制,可以将内核映像和根文件系统一起载入内存。2RAMFSTMPFSRAMFS是一种基于内存的文件系统,工作于虚拟文件系统VFS层,不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大小。RAMFSTMPFS文件系统把所有的文件都放在RAM中,所以读写操作发生在RAM中,可以用RAMFSTMPFS来存储一些临时性或经常要修改的数据,例如TMP和VAR目录,这样既避免了对FLASH存储器的读写损耗,也提高了数据读写速度。432根文件系统的制作1制作映像文件生成可以虚拟成块设备的文件,文件名为INITIMGDDIFDEVZEROOFINITIMGBS1024COUNT500格式化生成的块设备MKE2FS叫MOFINITIMG基于UCLINUX的电梯控制系统主控板研制2配置根文件系统将INIIMG和ROMFSIMG加载到主机文件系统上。MOUNTINITIMGRAM一OLOOPMOUNTROMFSIMGROMOLOOP建立RAMFS中需要的目录,即在RAM目录下建立子目录MKDIRRAMBINRAMDEVRARNETCRAMVAR拷贝必需的文件到RAMFS中即INITIMG中即从ROM目录拷贝文件到RAM目录。CPAROMETC搴RAMETCCPAROMBINSHRAMBINCPARORNBININITRAMBININIT创建设备节点MKNODRAMDEVTTYSOC464MKNODRAMDEVCONSOLEC5L第一条指令创建字符设备TTSO,即第O个串口设备,主设备号为4,从设备号为64。第二条指令建立字符设备CONSOLE,即控制台,主设备为5,从设备为L。UMOUNTRAMUMOUNTROM至此,RAMDISK制作完成。44本章小结本章首先主要分析了UBOOTBOOTLOADER的启动过程;然后通过启动过程的介绍在系统的硬件平台上移植了UBOOT,为操作系统的移植奠定了基础;接着介绍了UCLINUX的移植,配置和编译;最后介绍了基于RAM的文件系统的制作过程。这些为系统的驱动层的完成铺平了道路。32第五章驱动层的设计完成51LINUX驱动介绍第五章驱动层的设计完成系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口,如下图51所示。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作34刁51。设备驱动程序是内核的一部分,它完成以下的功能。对设备初始化和释放。把数据从内核传送到硬件和从硬件读取数据。读取应用程序传送给设备文件的数据和回送应用程序请求的数据。检测和处理设备出现的错误。JL图51LINUX驱动执行模式在LINUX操作系统下有两类主要的设备文件类型,一种是字符设备,另一种是块设备。字符设备和块设备的主要区别是I在对字符设备发出读写请求时,实际的硬件IO一般就紧接着发生了,块设备则不然,它利用一块系统内存作缓冲区,当用户进程对设备请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行实际的IO操作。块设备是主要针对磁盘等慢速设备设计的,以免耗费过多的CPU时间来等待
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电缆夹层管理办法
- 移动资金管理办法
- 福建探亲管理办法
- 私企车辆管理办法
- 研发驻场管理办法
- 病例收纳管理办法
- 淘汰激励管理办法
- 留校学生管理办法
- 研发人员管理办法
- 演员自律管理办法
- 意外伤害预防与急救处理指南
- 制药工程安全与环保
- 越南娘婚介合同协议
- 医院药房安全生产课件
- 计算机基础与应用 课件全套 王晓旭 第1-6章 计算机概述- WPS演示
- 苏教版小学数学三年级下册同步说课稿汇编(全册)
- 生物基材料研发与应用-全面剖析
- 2025江西管理职业学院教师招聘考试试题及答案
- 危重病人抢救护理书写指南
- 中小学教师资格教育方针试题及答案
- 管理文件DLT-5161-2024电气装置安装工程质量检验及评定规程
评论
0/150
提交评论