(机械电子工程专业论文)基于fpga的履带起重机力矩限制器技术研究.pdf_第1页
(机械电子工程专业论文)基于fpga的履带起重机力矩限制器技术研究.pdf_第2页
(机械电子工程专业论文)基于fpga的履带起重机力矩限制器技术研究.pdf_第3页
(机械电子工程专业论文)基于fpga的履带起重机力矩限制器技术研究.pdf_第4页
(机械电子工程专业论文)基于fpga的履带起重机力矩限制器技术研究.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(机械电子工程专业论文)基于fpga的履带起重机力矩限制器技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人连理r :火学硕十学位论文 摘要 履带起重机是广泛应用在化工建设、市政建设、建筑施工和港口码头等国民经济各 领域的一种流动式起重设备。随着履带起重机起升吨位的增大,安全方面需要考虑的内 容越来越复杂,尤其是增加了超起工况之后,对整个履带起重机的状态监控和准确控制 提出了更高的要求。 本文以大连理工大学机械工程学院丌发的一系列履带起重机实际项目为背景,对其 力矩限制器的技术方面进行研究。 ( 1 ) 对履带起重机力矩限制器的应用技术做深入分析,尤其是关于超起工况方面的 研究,本文引进载荷率的概念,以载荷率作为依据,控制起重机的机构动作,保证整车 的安全。 ( 2 ) 针对履带起重机力矩限制器的数据采集部分和输出驱动部分的特点,设计了 f p g a 实现的总体设计方法,应用a l t e r a 公司的n i o si i 软核技术,采用软核实现c p u 功能,应用a v a l o n 总线技术将其他外设做系统集成,连接不同功能的芯片实现履带 起重机力矩限制器的嵌入式系统硬件设计。 ( 3 ) 设计了以n i o si i 软核为核心的嵌入式系统,使用s o p cb u i l d e r 将s d r a m 、 f l a s h 等部分集成起来,在q u a r t u si i 中编译后,在e p l c l 2 的平台上完成了测试。 ( 4 ) 依照履带起重机力矩限制器的控制思路完成了系统的软件设计,设计中采用了 嵌入式操作系统胆o s 一1 1 ,确保了软件的可靠性。 ( 5 ) 本文采用成熟的显示器,完成了界面设计和c a n 通讯设计。 本文分析了履带起重机力矩限制器的关键技术,就超起工况的控制方法和工程机械 广泛使用的c a n 通讯部分做了深入研究,运用新兴的软核技术,完成了系统设计,在 试验室对核心部分进行了测试,完成了与显示器的c a n 通信。该项研究填补了f p g a 在工程机械起重设备领域的应用空白,为国内履带起重机力矩限制器的设计提供了一种 可借鉴的方法。 关键词:履带起重机;力矩限制器;f p g a ;c a n 基于f p g a 的履带起重机力矩限制器技术研究 r e s e a r c ho fc r a w l e rc r a n e sm o m e n tl i m i t e rb a s e do nf p g a a b s t r a c t c r a w l e rc r a n ei sak i n do fm o b i l el i f t i n ge q u i p m e n t ,w h i c hi sw i d e l yu s e di nc h e m i c a l p l a n tc o n s t r u c t i o n ,c i v i c i s mb u i l d i n g ,a r c h i t e c t u r ec o n s t r u c t i o na n dp o r t sa n dw h a r f si n a l l k i n d so fd o m a i n so ft h en a t i o n a le c o n o m y w i t ht h ec r a n e s h o i s t i n gt o n n a g ei n c r e a s i n g , s e c u r i t ya s p e c t sn e e d i n gt o b ec o n s i d e r e da r eb e c o m i n gm o r ea n dm o r ec o m p l i c a t e d , e s p e c i a l l ya f t e r t h es u p e r l i f te q u i p m e n tb e i n gi n c r e a s e d ,ah i g h e rd e m a n df o rt h es t a t e m o n i t o r i n ga n da c c u r a t ec o n t r o lo f t h ec r a w l e rc r a n ei sb r o u g h tf o r w a r d t h i sp a p e ri st h er e s e a r c ho nt h et e c h n i c a la s p e c t so ft h em o m e n tl i m i t e r t a k i n gt h e b a c k g r o u n do fs e r i e so fa c t u a lc r a w l e rc r a n ep r o je c t s ,w h i c ha r ee x p l o i t u r e db yd e p a r t m e n to f m e c h a n i c a le n g i n e e r i n gi nd a l i a nu n i v e r s i t yo f t e c h n o l o g y ( 1 ) a ne m b e d d e da n a l y s i so nt h ep i v o t a lt e c h n o l o g i e so fc r a w l e rc r a n e si sd o n e , e s p e c i a l l yo nt h ea s p e c to ft h es u p e r l i f ic a s e t h i sp a p e ri n t r o d u c e dt h ec o n c e p to fl o a dr a t e t h es e c u r i t yo ft h ee n t i r ec r a n ei sg u a r a n t e e db yc o n t r o l i n gt h em a c h i n ea c t i o n s ,o nt h eb a s i s o f l o a dr a t e ( 2 ) a i m m i n g a tt h ef e a t u r e so ft h ed a t ac o l l e c t i o np a n sa n dt h eo u t p u td r i v e rp a n si nt h e c r a w l e rc r a n em o m e n tl i m i t e r t h ec o l l e c t i v i t yd e s i g nm e t h o di sd e v i s e dt h a ti sa c h i e v e db y f p g a ,i nw h i c ha l t e r a sn i o ss o f t - c o r et e c h n o l o g yi sa p p l i e dt or e a l i z e t h ef u n c t i o no f c p u u s i n gt h es o f t c o r e ,t om a k eo t h e re x t e r n a le q u i p m e n t si n t os y s t e mi n t e g r a t i o nb e t a k i n g t h ea v a l o nb u st e c h n o l o g y ,t oa c t u a l i z et h es y s t e m h a r d w a r e - e m b e d d e dd e s i g nf o rt h e c r a w l e rc r a n em o m e n tl i m i t e rl i n k i n gc h i p so fd i f f e r e n tf u n c t i o n s ( 3 ) e m b e d d e d s y s t e mi sd e s i g n e d ,c e n t e r i n gt h en i o si is o f t c o r e ,i n t e g r a t i n gs d r a m a n df l a s ha n dt h el i k eu s i n gs o p cb u i l d e r ,t r a n s l a t i n ga n de d i t i n gi nt h eq u a r t u si ia n d a c c o m p l i s h i n gt h et e s to ne p i c l 2 ( 4 ) t h es y s t e m ss o f t w a r ed e s i g ni sc o m p l e t e da c c o r d i n gt ot h em o m e n tl i m i t e r s c o n t r o li d e ao fc r a w l e rc r a n e e m b e d d e d o p e r a t i n g s y s t e m l c o s i ii sa d o p t e dt oe n s u r e t h er e l i a b i l i t yo ft h es o f t w a r e ( 5 ) am a t u r ed i s p l a y i s a d o p t e d t o c o m p l e t e t h ei n t e r f a c e d e s i g n a n dc a n c o m m u n i c a t i o n s d e s i g ni nt h i sa r t i c l e t h ep i v o t a lt e c h n o l o g i e so nc r a w l e rc r a n e s sm o m e n tl i m i t e ri sa n a l y z e di nt h i sp a p e r e m b e d d e dr e s e a r c ho nt h ec o n t r o lm e t h o df o rt h es u p e r l i f tc a s ea n dc a nc o m m u n i c a t i o n s w h i c hi sw i d e l yu s e di ne n g i n e e r i n gm a c h i n e r y ,i sd o n e i nw h i c hb u r g e o n i n gs o f t c o r e t e c h n o l o g yi sh a n d l e d s y s t e md e s i g ni sc o m p l e t e d h a r d c o r et e s t sa r ed o n ei nt h el a b o r a t o r y 大连理工大学硕士学位论文 t of i n dc o r r e s p o n d e n c ee f f e c tw i t ht h ed i s p l a yf a v o r a b l e t h e s t u d yf i l l s u pt h ef p g a a p p l i c a t i o nb l a n ki nt h ef i e l do fm e c h a n i c a le n g i n e e r i n g ,p r o v i d i n gar e f e r e n c em e t h o df o rt h e d o m e s t i cc r a w l e rc r a n e s m o m e n tl i m i t e rd e s i g n k e yw o r d s :c r a w l e rc r a n e ;m o m e ml i m i t e r ;f p g a ;c a n i i i 大连理工大学学位论文独创性声明 作者郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究 工作所取得的成果。尽我所知,除文中已经注明引用内容和致谢的地方外, 本论文不包含其他个人或集体已经发表的研究成果,也不包含其他已申请 学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的贡献 均已在论文中做了明确的说明并表示了谢意。 若有不实之处,本人愿意承担相关法律责任。 学位论文 作者签名 大连理工大学硕士研究生学位论文 大连理工大学学位论文版权使用授权书 本人完全了解学校有关学位论文知识产权的规定,在校攻读学位期间 论文工作的知识产权属于大连理工大学,允许论文被查阅和借阅。学校有 权保留论文并向国家有关部门或机构送交论文的复印件和电子版,可以将 本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印、或扫描等复制手段保存和汇编本学位论文。 学位论文题 作者签名: 导师签名: 大连理工大学硕士学位论文 1 绪论 1 1课题的研究背景 在本人攻读硕士研究生期间,国内履带起重机经历了空前的快速发展期。福田雷沃 的3 2 0 t 、山东奥奇重工的3 5 0 t 、徐州重型的4 5 0 t 、抚挖重工的5 0 0 t 、中联重科浦沅分公 司的6 0 0 t 、三一科技的1 0 0 0 t 等大型履带起重机相继涌现,国内履带起重机迎来了大型 化和智能化的春天。这些大吨位履带起重机普遍采用超起装置来增加中大幅度的起重 量,这项技术的迅速推广,使得国内主要的履带起重机制造商在短短的三年之内都基本 采用并掌握了该技术,但是国内的力矩限制器厂家还没有对该技术做全面深刻的研究, 以至于截至目前还没有国产力矩限制器应用在大型履带起重机上面。 目前m c u 、d s p 和f p g a 三巨头在现代嵌入式系统中扮演的角色呈现三分天下的 局面,它们各自具有独特的优势而在某方面又略显不足【1 】。随着大规模f p g a 的问世, 很多厂商将自己的数字器件、专用算法以i p 核的形式嵌入到f p g a 中,嵌入式处理器 可以“软核”的形式出现在f p g a 中,也可以将a r m 等“硬核”嵌入到f p g a 中,使f p g a 具有嵌入式系统的c p u 处理能力。利用这种技术,该系统可以拥有微处理器系统丰富 的软件资源和稳定可靠的嵌入式操作系统,同时又具备f p g a 系统的快速硬件逻辑特 性,实现了软件系统和硬件系统的互补,刁 矿j 熏 砌 2 4 0 图4 2 0 具有高压保护功能的a i 电路 f i g 4 2 0 a ic i r c u i tw i t hh i g hv o l t a g ep r o t e c t i o nf u n c t i o n 当a i 输入端短接到2 8 v 电源上时,2 5 0 q 电阻发热功率约3 w ,要满足3 w 的电阻 体积会比较大,而且电阻发热会影响电路板上的其他元件,所以本文采用了图4 2 0 所示 保护电路。当a i 输入电压小于5 v 时,电压比较器l m l 3 9 1 2 4 1 驱动模拟开关的触点闭合, 将a i 信号送至a d c 转换器;当a i 输入电压高于5 v 时,电压比较器断开模拟开关, 直到a i 电压低于5 v 时才恢复正常。由于模拟开关m a x 3 1 3 的导通电阻约1 0q 【2 5 j ,所 以取r l 为2 4 0q 。 一3 9 一 t , 一面涨舌j渤一一一一一一w一 删伽薹;洲哪嘶伽一一一肌一 ,一一一一一一一一一一一一一|m一一i|m一一 基于f p g a 的履带起重机力矩限制器技术研究 4 4 。3 数字量输出 履带起重机力矩限制器的数字量输出主要用来驱动电磁阀,所以d o 必须具备较强 的带载能力。通常输出驱动电路设计中通常使用大电流的m o s f e t ,在应用技术的角度 考虑采用西门子公司的b t s 6 2 1 比较合适,它具备完善的保护功能,内置电荷泵,单:占 片可以实现两路d o 输出f 2 6 】,其结构框图如图4 2 1 所示。 图4 2 l 具有完备功能的m o s f e t f i g 4 21 m o s f e tw i t hs e l f - c o n t a i n e df u n c t i o n 然而限于市场采购的原因不能采用b t s 6 2 1 ,本文采用了欧森美公司的n i f 6 2 5 1 4 , 它具有e s d 保护、过流保护和过热保护等功能【2 7 】,如图4 2 2 所示。 图4 2 2具备仝功能保护功能的m o s f e t f i g 4 2 2 m o s f e tw i t hc o m p l e t ep r o t e c t i o nf u n c t i o n 大连理工大学硕士学位论文 由于n i f 6 2 5 1 4 内部没有电荷泵,还需要外部增加对m o s f e t 的驱动电路。本文采 用l i n e a r 公司的l t l1 6 1 ,其工作电压范围8 - 4 8 v t 28 1 ,具有四路m o s f e t 的驱动接1 2 1 。 为保证f p g a 安全在f p g a 的p i o 引脚和l t l1 6 1 之间加装光耦隔离,电路如图4 2 3 所示。 图4 2 3 主机部分d 0 接1 2 1 电路 f i g 4 2 3d i g i t a lo u t p u tc i r c u i ti nh o s tp a r t 4 4 4 通信部分 基于a v a l o n 总线的c a n 核对外提供两条数据线,这两条数据线需要经过电平转换 电路才能连接到c a n 总线上。m a x l 3 0 5 4 本身可承受+ 8 0 v 的c a n 线错误能力2 9 1 ,但 是考虑工程机械工作环境恶劣,在数据的输入输出处使用光耦隔离,更加可靠的保护 f p g a 部分彳i 受错误连接造成的损坏,c a n 总线接1 3 电路如图4 2 4 所示。 图4 2 4 丰机c a n 通信接l j 电路 f i g 4 2 4 c o m m u n i c a t i o ni n t e r f a c ec i r c u i ti nc a n sh o s tp a r t 舛 洲 如 基于f p g a 的履带起重机力矩限制器技术研究 4 4 5 实时时钟 实时时钟可以保证系统时钟不受外部供电的影响,可以独立准确运行,使事件记录 准确可靠。本文采用的r t c 为d a l l a s 公司的d s 3 2 c 3 5 ,内部集成有8 k b 的f r a m l 3 0 1 , 可以作为非易失性存储器使用,其接口为快速( 4 0 0 k h z ) 1 2 c 接口,与f p g a 连接电路如 图4 2 5 所示。 4 5 本章小结 图4 2 5 实时时钟电路设计 f i g 4 2 5 r t cc i r c u i td e s i g n b t l 3 v 履带起重机力矩限制器主机部分是典型的工程机械数据采集系统,本章研究了 f p g a 嵌入式系统设计的核心部分,分析了a v a l o n 总线特点,并将n i o si i 软核、 s d r a m 、f l a s h 、1 2 c 和c a n 接口连接到a v a l o n 总线上,创建了顶层模型;结合工程 机械工作环境和需要的保护功能,设计了相关的外围电路。 大连理工大学硕士学位论文 5 力矩限制器主机软件设计 目前国内的履带起重机力矩限制器中大多没有采用嵌入式操作系统,而是采用前后 台的设计思路设计制作,这样刁、= 利于代码的规范性和通用性。本文采用b e o s 一嵌入 式操作系统,在操作系统的基础上开发驱动软件和应用软件。 5 1 b e o s 一口操作系统介绍 p c o s 一1 1 ( 也译作m i c r o c o s i i ) 嵌入式操作系统是美国人j e a nl a b r o s s e 于1 9 9 2 年编写的,是一种适合于小型应用的控制器的可剥夺型实时操作系统,他是一个免费 的、源代码公开的实时嵌入式内核,包含了任务调度、任务管理、时间管理、内存管 理和任务间的通信与同步等基本功能。其主要特点有【3 1 , 3 2 : ( 1 ) 可剥夺型实时内核。当优先级高的任务处于就绪状态时就会得到c p u 的使用 权,保证了操作系统的实时性。 ( 2 ) 小巧稳定。该操作系统可裁剪,最小代码可以精简到2 7 k b 。p c o s h 通过了 美国航空航天管理局( f a a ) 的安全认证,可以用于稳定性要求极高的飞机、航天器 等与人性命攸关的控制其系统中。 ( 3 ) 公开源代码。该系统属于开放式系统,用户可以了解到系统的核心内容,可以 很好的掌握内部的控制机制,更好的编写自己需要的应用程序。 ( 4 ) 可移植性强。p c o s h 大部分是采用a n s ic 编写的,只有与处理器硬件相关 的部分代码用汇编语言编写。所以p c o s 一1 1 的移植性很强,目前已经在绝大多数的 8 位、1 6 位和3 2 位处理器和d s p 上运行。 ( 5 ) 多任务。p c o s 一口最多可以管理6 4 个任务,这些任务通常都是一个无限循环 的函数。在现行版本中,系统保留了4 个最高优先级和4 个最低优先级任务,所以用 户可以使用5 6 个任务。 由于p c o s 一1 1 是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核, 他总是运行最高优先级的就绪任务,刁、= 支持轮转任务调度。每个任务被赋予了唯一的 优先级,使用自己独立的堆栈。p c o s 一1 1 提供了许多系统服务,如邮箱机制、队列机 制、信号量机制、固定大小的内存分区以及时间相关的函数等。目前,p c o s 一1 1 已经 应用存很多领域,比如医疗器械、电喷发动机、测络设备、a t m 及工业机器人等。 基于f p g a 的履带起重机力矩限制器技术研究 5 1 1 t c o s 一口内核 在嵌入式系统中,内核负责管理各个任务,为各个任务分配c p u 资源,并且负责 任务间的通讯。内核提供的基本服务是任务切换,内核的使用可以大大简化应用系统的 设计。相对前后台的设计思路,采用嵌入式操作系统有利于规范化设计和规范化管理。 l c o s 一1 1 控制下的任务有休眠、就绪、运行、中断和挂起等状态。通过任务调度, 各个任务在这5 个状态之间转换,如图5 1 所示。 图5 1 t 1 c o s 一口任务状态转换关系 f i g 5 1r e l a t i o n s h i p so ft a s k ss t a t u st r a n s m i t i o nf o r x z o s 一1 1 f l c o s 一口总是运行就绪任务中优先级最高的那一个,确定哪个任务优先级最高, 下面该那个任务运行了的工作是由调度器完成的。任务级的调度是由o s s c h e d 0 完成的。 中断级的调度是由另一个函数o s i n t e x t o 完成的。下面引用o sc o r e c 中的o s s c h e d ( 1 函数做详细分析: v o i do s s c h e d ( v o i d ) i n t 8 u y ; o s e n t e r _ c r i t i c a l ( ) ; 木任务调度必须使能并且非中断级别枣 i f ( ( o s l o c k n e s t i n go s i n t n e s t i n g ) = = 0 ) 堆获得最高优先级任务准备运行 串 y = o s u n m a p t b l o s r d y g r p ; o s p r i o h i g h r d y = ( i n t 8 u ) ( ( y 3 ) + o s u n m a p t b l o s r d y t b l y ) ; 大连理工大学硕士学位论文 p 如果当前就绪的最高优先级任务没有上下文切换宰 i f ( o s p r i o h i g h r d y ! = o s p f i o c u r ) o s t c b h i g h r d y 。o s t c b p r i o t b l o s p r i o h i g h r d y ; 宰上下文转换计数器递加木 o s c t x s w c t r + + ; 乖执行上下文转换事 o s _ t a s k _ s w 0 ; ) o s e x i t _ c r i t i c a l ( ) ; ) p c o s - h 任务调度需要花费的时间是常数,与应用程序中建立的任务数无关。如 果不是在中断服务子程序调用o s s c h e d 0 ,并且任务调度是允许的,即没有上锁,则任 务调度函数将找出那个进入就绪态且优先级最高的任务。一旦找到那个优先级最高的任 务,o s s c h e d 0 检验这个优先级最高的任务是不是当前正在运行的任务,以此来避免不 必要的任务调度。如果“任务调度必须使能并且非中断级别”的条件不满足,任务调度函 数o s s c h e d ( ) 将退出,不做任务调度。为实现任务切换,o s t c b h i g h r d y 必须指向优先 级最高的那个任务控制块o s t c b s ,这是通过将以o s p r i o h i g h r d y 为下标的 o s t c b p r i o t b i 数组中的那个元素赋给o s t c b h i g h r d y 来实现的。接着,统计计数器 o s c t x s w c t r 加1 ,以跟踪任务切换次数。最后宏调用o st a s ks w 0 来完成实际上的 任务切换。 5 1 2 傲o s 移植 a l t e r a 公司已经将t c o s 一口操作系统集成到n i o si ii d e 开发环境中,所以本文仅 简单介绍j 2 c o s 一口的移植过程。 p c o s 一1 1 的移植需要具备如下条件: ( 1 ) 处理器的c 编译器能产生可重入代码; ( 2 ) 用c 语言可以开中断和关中断; ( 3 ) 处理器支持中断,并且能产生定时中断; ( 4 ) 处理器支持能容纳一定量数据( 数千字节) 的硬件堆栈; ( 5 ) 处理器有将堆栈指针和其他c p u 寄存器读出和存储到堆栈或内存中的指令。 在n i o si i 处理器完全满足上述要求的前提下,需要修改t c o s 一中与c p u 相关 的代码,包括:o sc p u h ,o sc p ua a s m ,o sc p uc c 。 基于f p g a 的履带起重机力矩限制器技术研究 5 2 o si i 起动过程分析 通常的嵌入式系统起动过程是c p u 复位到指定地址,然后读取并执行该地址的代 码。因为f p g a 是基于s r a m 的可编程逻辑阵列,上电时先要配置f p g a ,而后需要把 f l a s h 中的程序搬运到s d r a m 中运行,这些与通常的起动过程有较大差异。 一般的系统都会结合用易失性存储器运行程序运行速度快,非易失性存储器掉电数 据不丢失的特点,利用f l a s hm e m o r y 存放程序代码,利用s d r a m 运行程序。这样的 系统在系统复位时需要把程序从源地址l m a 搬运到运行地址v m a 中运行,完成这个 代码搬运工作的代码称之为b o o t l o a d e r 【玎j 。 b o o t l o a d e r 是系统上电后运行的第一段代码,对与n i o si i 系统而言,他需要完成 复位子程序,加载l m a 到v m a 和跳转到应用程序入口的任务。常见的b o o t l o a d e r 有 两种方式,一是利用c f if l a s hb o o t l o a d e r ,这种加载方式比较简单,而且此类抚慰期间 支持处理器的直接读操作,另一种是e p c sf l a s hb o o t l o a d e r ,这种方式制作相对复杂, 因为n i o si i 处理器不能直接从e p c sf l a s h 中读取数据,所以在e p c sf l a s hb o o t l o a d e r 中必须包含e p c sf l a s h 驱动代码。 5 2 1e p c sf la s h 起动 a l t e r a 公司的c y c l o n e 、c y c l o n ei i 、c y c l o n ei i i 以及s t r a t i x 、s t r a t i xi i 、s t r a t i xi i i 和 s t r a t i xi v 系列都支持主动串行配置模式( a s 模式) ,用户在s o p cb u i l d e r 中添加e p c s 控制器,并为e p c s 控制器分配基地址,这个地址就是e p c s 控制器片上r o m 在n i o s i i 系统中的基地址。从e p c s 起动时,f p g a 工作于a s 模式,在配置过程中,f p g a 向 e p c s 提供时钟,在简单握于操作之后,e p c s 中的配置数据将在f p g a 时钟的驱动下 源源刁、= 断的发送给f p g a ,直到最终配置完成。这时就生成了n i o si i 软核,n i o si i 复 位后,会直接执行e p c sf l a s h 上的r o m 的b o o t l o a d e r 。b o o t l o a d e r 将程序段映像从源 地址加载到运行地址。 5 2 2c f if ia s h 起动 如果要将n i o si i 软件程序和f p g a 的配置数据同时存放于同一个f l a s h 中,就需 要一个配置控制器来驱动f l a s h 输出配置数据以完成f p g a 的配置,配置控制器般用 一片c p l d 完成。 f l a s h 除了可以存储f p g a 配置数据和n i o si i 程序外还可以存储其他数据,f l a s h 中的配置数据还可以分为两个区域:一个用于用户逻辑,另一个用于出厂逻辑。当用户 逻辑配置失败后,配置控制器可以控制f p g a 自动使用出厂逻辑,保证任何时候都有一 大连理工大学硕士学位论文 个配置可以工作。另外,配置控制器还可以接受来自n i o si i 处理器的重配置请求,并 驱动f p g a 重新配置,完成f p g a 的现场升级。 5 3h a l 的项目架构 硬件抽象层h a l ( h a r d w a r ea b s t r a c t i o nl a y e r ) 是一个底层的运行环境,为系统提 供底层的硬件驱动,h a l 系统库应用程序接口a p i 由标准的a n s ic 库组成。h a l 的 a p i 如许用户使用熟悉的c 语言访问器件,例如f o p e n ( ) ,f w r i t e o ;f p r i n t o 等1 3 引。h a l 为嵌入式系统的外围设备提供接口,将a l t e r a 的s o p c b u i l d e r 和n i o si ii d e 紧密的联 系起来。在s o p c b u i l d e r 生成系统硬件后,n i o si ii d e 创建生成h a l 系统库以匹配生 成的硬件系统。当系统硬件配置发生改变时,系统自动将信息传递给h a l 系统库,以 减少由于底层硬件发生微小变化而产生的系统错误。 h a l 系统库对具体应用和器件驱动软件设计的支持有明显区别。在硬件不改变的 情况下可以重复使用系统提供的应用代码。另外,编写与现有器件相兼容的外围器件的 驱动也非常简单。h a l 系统库支持如下服务【3 4 】: ( 1 ) 综合最新的a n s ic 标准库:支持用户熟悉的标准c 函数库。 ( 2 ) 元件驱动器:支持对元件的访问。 ( 3 ) h a la p i :支持标准和兼容的接口,如器件访问、中断处理等。 ( 4 ) 系统初始化:在m a i n 函数运行前,对处理器进行初始化。 ( 5 ) 器件初始化:在m a i n 函数运行前,对各个器件进行初始化。 图5 2 给出了h a l 基本结构层次设置,从底层的硬件层到用户的程序层。 硪产矗甩程薛 c 标蝉ii o $ i i h a l a p i 设备设备设备 驱动驱动驱动 n i o si i 处理嚣硬件系统 图5 2h a l 基本层次结构图 f i g 5 2 s t r u c t u r a lc h a r to fh a l sb a s i ca r r a n g e m e n t 如果用户使用的器件不是h a l 通用器件模式种类中的一种,那么用户需要自定义 一个特殊的接口和硬件连接,并编写驱动程序。而这种接口不属于h a la p i ,他们之问 是分离的。如果需要对硬件进行访问,则需要调用用户写的程序,而不是通过h a la p i 。 基于f p g a 的履带起重机力矩限制器技术研究 n i o si i 处理器硬件系统层是第4 章构建的基于n i o si i 软核的系统平台,是整个系 统的物理设备基础;设备驱动层是与硬件联系最为紧密的一层,直接访问硬件;h a la p i 层是硬件抽象层( h a r d w a r ea b s t r a c tl a y e r ,h a l ) 为操作系统或用户程序提供的标准化 应用程序接口;操作系统层提供驱动接口对硬件设备进行驱动和控制,同时通过引用任 务调度机制负责整个系统的运作;用户应用程序层主要是实现具体功能的程序代码。 描述:c ,h ,s 文件 创建者:用户 描述:n t o siii d e x _ 程设置 创建者:n i o si ii d e 二三三二四蔷薹:9 姜毫气;。, 图5 3n i o s1 1 工程结构图 f i g 5 3e n g i n e e r i n gs t r u c t u r a lc h a r to f n i o si i a l t e r a 公司提供了专门的软件集成开发环境刈i o si ii d e ,系统软件的开发都是 在n i o si ii d e 中进行的。图5 3 是n i o s1 1i d e 工程结构图,从图中可以看出,一个 n i o si ii d e - i - 程包括两个工程:用户应用程序工程和h a l 系统库工程,用户应用程序 实在用户应用程序工程中编译的,而c 标准库、u c o s i i 操作系统、h a la p i 和设备驱 动是在h a l 系统库工程中编译的。 其中,a l t e r a 提供了对p c o s 一口的完整支持,只要在n i o si ii d e 中进行简单的设 置即可完成对p c o s 一1 1 的配置。由此可见,软件程序开发还剩下两个部分:驱动程序 开发和应用程序开发。 驱动程序是供给应用程序访问底层设备的程序。如果已完成设备的驱动程序,则用 户程序的开发只要利用驱动程序提供的各种函数就可以实现应用程序的编写。 大连理工大学硕士学位论文 图5 4h a l 支持的器件目录 f i g 5 4 c a t a l o gf o rp a r t so fa na p p a r a t u sw i t hh a ls u p p o r t i n g 5 4 外设驱动设计 i n 5 4 1c a n 总线的驱动设计 在a l t e r a 公司的h a l 系统库中没有c a n 的设备描述,在应用软件中要实现c a n 通信就需要自己编写c a n 的驱动程序。本文按照h a l 的开发思路,编写了c a n 的驱 动程序。 ( 1 ) 寄存器读写文件设计。驱动的实现首先要定义寄存器读写文件c a n r e g 。寄存器 读写宏基本定义方法如下: # d e f i n el o r da l tc a n ,1 )读i d 号i d x ( b a s e )i o r d ( b a s e # d e f i n ei o w ra l tc a ni d x ( b a s e ,d a t a ) i o w r ( b a s e ,1 ,d a t a ) 写i d 号 寄存器的掩码与偏移定义方法如下: # d e f i n ea l tc a ni d xi d xm s k # d e f i n ea l tc a ni d xi d xo f s t c a n 的设备结构定义如下: ( 0 x 1 f f f f f f f u )扩展帧 ( 0 ) # d e f i n ea l t _ c a n i n s t a n c e ( n a m e ,d e v i c e ) s t a t i ca l t c a n d e vd e v i c e2 a l tl l is t _ e n t r y , n a m e # # _ n a m e ,n u l l ,n u l l ,n u l l ,n u l l ,n u l l ,n u l l ,n u l l , ,n a m e # # _ 3 a s e ) 一4 9 基于f p g a 的履带起重机力矩限制器技术研究 ( 2 ) 功能函数设计。c a n 不是h a l 系统库中的标准外设,c a n 功能实现的方法也 没有统一的规定,所以在功能函数中定义必要的初始化函数和数据收发函数即可,在函 数传递过程中,参考了成熟i p 核的应用方法1 3 5 】,使用结构体变量形式。 a l ta v a l o nc a r li n i t ( a l ta v a l o nc a nd e v 誊d e v ,i n tb a s e ) ;初始化 a l t _ a v a l o n _ c a n _ i r q ( i n tb a s e ,i n ti r q ,s t r u c tc a p t u r e s 木c a p t u r e ) ; 断 a l t _ a v a l o n _ c a n _ o p e n ( a l t u 3 2b a s e ,s t r u c tc a n a l l s 木c a n a l l ) ;打开c a n 设备,打开时调 用初始化函数,同时注册中断函数; a l t a v a l o n c a n r e a d ( a i ru 3 2b a s e ,s t r u c tc a n m s g s 率e a n m s g ) ;读取c a n 总线上的消 息,存放在结构体变量中; a l t a v a l o n c a n w r i t e ( a l t u 3 2b a s e ,s t r u c tc a n m s g _ s 木c a n m s g ) ;写一条消息到c a n 总 线上,写的内容在结构体变量中; a l ta v a l o nc a ns t a r ( a i ru 3 2b a s e ,s t r u c tc a n s t a ts 卡c a n s t a t ) ;读取c a n 控制器的状态, 为故障诊断服务: 在打开c a n 设备函数中调用初始化函数和注册c a n 中断函数,在应用程序中根据 中断信号接收c a n 总线发送的信息。本文的c a n 数据接收采用中断查询的方式,数据 发送采用任务中函数调用的方式完成。 5 4 2 l2 c 总线的驱动设计 本文使用的1 2 c 的i p 核用于实时时钟的读写及f r a m 的读写,使用的程度比较简 单,在驱动设计过程中主要考虑了1 2 c 功能的实现,没有将其作为h a l 详细设计。 首先用宏的方式定义1 2 c 寄存器的的控制位: # d e f i n e1 2 cc rs t a # d e f i n e1 2 cc rs t o # d e f i n e1 2 cc rr d # d e f i n e1 2 cc rw r # d e f i n e1 2 cc ra c k # d e f i n e1 2 cc ri a c k # d e f i n e1 2 cs rt i p 再定义处理器访问寄存器的宏代码: # d e f i n ei o w r1 2 cp r e r l o ( d a t a l # d e f i n ei o w r1 2 cp r e r h i ( d a t a l # d e f i n ei o w r1 2 cc t r ( d a t a l # d e f i n ei o w r1 2 ct x r ( d a t a ) # d e f i n ei o w r1 2 cc r ( d a t a l 0 x 8 0 0 x 4 0 0 x 2 0 0 x 10 0 x 0 8 0 x 0 1 0 x 0 2 i o w r ( a l t _ 1 2 c m a s t e r 一0 一b a s e ,0 ,d a t a ) i o w r ( a l t 1 2 c _ m a s t e r 一0 一b a s e ,1 ,d a t a ) i o w r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论