【电力期刊】基于ARM920T嵌入式通信控制系统设备驱动开.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《【电力期刊】基于ARM920T嵌入式通信控制系统设备驱动开.pdf》由会员分享,可在线阅读,更多相关《【电力期刊】基于ARM920T嵌入式通信控制系统设备驱动开.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 2 6 卷第 6期 2 0 0 6年 6月 电 力 自 动 化 议 备E l e c t ri c P o w e r A u t o m at i o nE q u i P m e n tVo l.2 6 N o.6 J u n.2 0 0 6由基于A R M9 20T嵌人式通信控制 系 统 设 备 驱 动 开 发王松月,杨福兴(北京邮电大学 自 动化学院,北京 1 0 0 8 7 6)摘要:传统的8/16位微控制器由于速度慢、功耗大且实现I nt e met协议困难,已经不能满足大量信息管理的需要。提出 一种基于A R M920 T 和Li nux 的嵌入式通信控制系 统,介绍了系 统
2、架构和在工业系统的应用。论述了用动态模块加载法和静态编译进内核法开发系统外扩设备控制器局域网(C A N)总线以及R S 一 422/R S 一 485 总线驱动程序的流程,分析了驱动的调试方法;对开发嵌入式系统驱动程序的2 种方法作了对比。关键词:嵌入式系统;A R M;L in ux;驱动中图分类号:T P 3 l l.5 2;T P 3 6文献标识码:B文章编号:1 0 0 6 一 6 0 4 7(2 0 0 6)0 6 一 0 0 7 5 一 0 40 引言 通信管理机主要用于各智能设备及系统之间的数据交换。它是各设备之间数据交换的通信枢纽,是自动化系统不可缺少的重要设备。传统的8/l
3、6位微控制器由于速度慢、功耗大且实现I nt e met协议十分困难,已经越来越不能满足高速发展的工业系统对大量信息管理的需要。随着A R M(A d va ncedRIS CM achi nes)工业级芯片的不断成熟及嵌人式Li mix 系统的不断完善,开发一种基于A R M和Li mix的嵌人式系统用于工业系统通信管理很有必要。而设备驱动是整个系统的重要组成部分,是连接软、硬件平台的桥梁。本文提出一种基于 A R M芯片 E P9 3 巧 嵌人式通信控制系统,介绍了用动态模块加载法和静态编译进内核法开发系统外扩设备控制器局域网(C A N)总线和R S 一 4 2 2/R s 一 4 85
4、总线驱动程序的 过程。1 系统整体架构及工作原理 所设计的嵌人式通信控制系统以32 位 A R M芯片E P 9 3 1 5 为核心,运行嵌人式Li mix 操作系统,可实现大容量信息采集与计算、通信管理和工业控制等功能。E p 9 3 1 5 是C i mis Log i C 公司开发的基于A R M92O T处理器核的工业级芯片,支持32 位A R M指令集和16位Thu m b 指令集,5 级整数流水线,提供1.I M l p S/M H z 的哈佛结构,内存管理单元(M M u)支持Win d ow C E、Li nux 等嵌人式操作系统。主频最高可达Z ooM H z,配备M a v
5、 e h c kc ru n c h 协处理器,可用于浮点运算、D S P 运算和媒体处理,内置图 像加速卡,图像显示和处理十分迅捷。芯片内部集成有串口R S 一 2 3 2、通用串行总线(U S B)、网口、外挂硬盘收稿日期:2(X)5 一 1 1 一 3 0;修回日期:2(X)6 一 0 2 一 2 7和音频等控制器,支持彩色液晶、触摸屏和小键盘,功能十分强大。其系统架构如图1 所示。图 1系统架构图F i g.IS y s t e ma rc h i t e c t u re 为完善其通信管理功能,本系统外扩了4 路电气隔离R S 一 4 8 5/4 2 2串口、2 路光电隔离C A N
6、VZ.0总线、1 路变压器隔离 1 0/1 0 0 M b i t/5 以太网和3 2路开关量输人/输出功能,并且配备实时时钟,可以掉电保持。为增加其可靠性,系统设计有看门狗和电源监测电 路,并且采取电 磁滤波屏蔽(EM l)设计,使系统具有较强的抗干扰能力。此嵌入式通信控制系统配置了异步串行收发(U A R T)、U S B I.1、C A NZ.O B和以太网等工业总线标准 接口,可作为网 关,通过简单的现场总线将其他8/16位微处理器(M C u)组成的嵌人式工业控制设备连接,下位机的数据和信息从R S 一 4 22/R S 一 4 85总线进人嵌人式控制器,经过协议转换后通过In te
7、 m et发送到远程主机上。C A N节点可收集模拟量输人、E P 9 3 1 5u s e:M an u 公.h t t p:/www.c i rms.c o m.万方数据电 力自 动 化 议 备第 2 6卷由输出和开关量输人、输出等信息。通过C A N总线传送并存储在系统内存中,生成C A N数据文件,用户通过网络可访问和修改工业现场数据。嵌人式控制器本身还可作为工业控制的 1 个节点使用,实时采集、存储、传输,通过键盘和L C D可查询设备状态和设置设备参数。该嵌人式通信控制系统将基于 T C P/IP 的以太网和现场总线技术有效地结合,使得孤立的现场设备作为网络节点有机地连接,易于集中
8、化管理和控制,体现了网络化和开放性是当前工业控制领域的发展方向。2 搭建系统软件开发环境 在设备驱动程序的开发过程中,调试内核和驱动程 序采用Ft p 一 T el ne t 远程开发 模 式。如图2 所示。画卿画一二匡而纂巫靡画3 动态模块加载法开发 C A N总线驱动程序 C A N属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络,本系统采用2 片p h i l i p s 公司生产的S J A I O 0 0 作为独立的C A N控制器4j。以下介绍驱动程序实现中的关键问题。3.1 物理地址到虚拟地址的映射 E P 9 3 1 5内部带有M M u,用户不能直接对底
9、层物理地址操作,必须在内核中将物理地址映射到相应的虚拟地址上,操作虚拟地址以读/写寄存器。有 2 种方法可实现这种映射5j。3.1.1 静 态映射 在i n u x/i n c l u d e/a s m一 a rm/ar c h 一 e p 9 3 x x/re g m ap.h 中 定义物理地址、虚拟地址和映射长度。#d e fi n e C AN B A S E VI R T0 xF F B 0 0 0 0 0交换机串口线P HYS0 x 3 l E0 0 0 0 0 0开发板lll Li n ux服务器 1 开发板2 图ZF tP及Tel ne t 远程开发模式F i g 2R e m
10、 o t e d e v e l o p m e n t m o d e o f F t pa n d Tel n e t/C A N中虚拟地址#d e fi n eC AN B AS E/C A N中物理地址#d e fi n eC A N S I Z E 在 l i n u x/a r c h/0 x 0 0 1 0 0 0 0 0/长度a rm/m a c h 一 e p 9 3 x x/m m.C 中将 首先,在Li mix 服务器上建立交叉编译环境,交叉编译就是在一个系统平台上生成另一系统平台上的可执行代码。可以在www.k eg el.C o m上下载交叉编译软件包c 加 s s
11、t o o l 一 2.9 5.3.t a r.9 2,解压并修改/e t c目 录 下的p ro fil e 脚本文件,设置交叉编译工具路径,系统以后再编译程序时就会自动找到适合的编译工具。由于目 标板平台基于A R M处理器,所有生成的交叉编译工具都会打上a rm一 h mix 一 前缀。开发人员通过网络用 T el net 方式远程登陆到Li nux 服务器,把需要编译的内核或者驱动程序用文件传输协议(Ft P)传到服务器上,编 译完成后把可执行代码用Ft p 协议下载回自 己 主 机,然后,通过网 络下载到开发板上,通过串口 控制开发板。这种方法可使开发者在熟悉的Win dow S 环
12、境下开发调试,使用熟悉的编辑软件修改程序,避免了Li n ux 开发界面单一的缺点和在不同界面下切换的麻烦。同时,多人可以共享 1 台高性能的Li n u x 服务器,可以节约资源且方便高效。嵌人式软件系统的结构可分为操作系统、设备驱动、应用中间件和应用系统4个层次。设备驱动程序在功能上分为2 层:硬件控制层和接口封装层。硬件控制层负责对硬件模块按功能提供各种控制接口;接口 封装层负责将硬件控制层封装成标准的应用 接 口,。Li nux 内核提供了2 种机制开发设备驱动程序:一种直接把驱动程序编译到内核中;另一种则是驱动程序编译成可动态加载和卸载的驱动模块T3。以下分别介绍用这 2 种方法开发
13、 C A N总线和串口R S 一 4 2 2/R S 一 4 8 5 的驱动程序。上面的定义添加实现映射的结构中。s t a t i cs t ruC t m a 仁d e s ce p 9 3 x x-i o-d e s c _i n i t d a t a=1/V irt u alA d d r e s,P h y s i c a l A d d r e s,s i z eDo ma i n R W C B瓦s tl l O _ B A S E _ V I R T,1 0 _ B A S E 一H Y S,1 0 多I Z E,D O M A I N _ 1 0,0,1,0,0 ,C A
14、N _ B A S E 一 I R T,C A N _ B A S E _ P H Y S,C A N _ S I Z E,D O M A I N _ 1 0,1,1,0,0 LAS T-D E S C ;3.1.2 动态映射 L i n u x 在1 0.h 头文件中声明了函数i o re m a p(),用于将 1/0内存资源的物理地址映射到核心虚地址空间(3 G B 一 4 G B)中,函数原型如下:v o i d*i o r e m a p(u n s i g n e dl o n gp h y s 一d d r,u n s i 罗e dl o n gs i z e,u n s i g
15、 n e dl o n gfl a g s);函数v o i di o u n m a p(v o i d*a d d r)用于取消i o re-m ap()所作的映射,参数a ddr 是指核心虚地址的指针。这2 个函 数都 是实现 在m m/io re m ap.C 文 件中。映射完成后,就可以象读/写R A M那样直接读/写系统的1/0内 存资源了。3.2 字符设备的注册 Li nux 系统的 设备分为字符、块和网 络3 种设备,字符设备存取时只需较少缓存,应用程序可像访问文件一样使用标准系统调用打开、读、写和关闭它。当 字符设备初始化时,它的 设备驱动程序向U mix核心登记,通过系 统
16、函 数re gi st e r-ch 记 evo 将设备加入到系统设备列表中,在c h adevs 向量表中增加1 个devi ce _ st ru ct数据结构条目,该设备的主设备标识符(例如对于c an设备是9 1)作为该向量表的索引,1个设备的主标识符是固定的。chadevs 向量表中的devi ce _ st ru ot数据结构包含2 个元素:一个是登记的设备驱动程序名称的 指针,另一个是指向一组文件操万方数据第 6期王松月,等:基于A R M9 20T 嵌人式通信控制系统设备驱动开发.作的指针。这块文件操作本身位于这个设备的字符设备驱动程序中,每个都处理特定的文件操作,比如打开、读、
17、写和关闭,/p r o C/d e v i c e s 中 字符设备的内容来自c h 记 ev s 向量表。注销与注册相反,调用u n r e g i s t e r-ch r d e v()函数6 。3.3 C A N总线驱动程序的 3 个主要组成部分 a.自动配置和初始化子程序,完成硬件设备的检测和初始化。b.服务于1/0请求的子程序,控制硬件发送和接 收 数 据,打 开、关 闭 及 属 性 设 置。fil e 一 叩 er at ion s 结构为 Lin ux 提供的服务于 1/0请求的子程序的代码实现提供了一系列入口 点,和字符设备一起注册到系统中,在文件作用域中进行定义7j。c.中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电力期刊 电力 期刊 基于 ARM920T 嵌入式 通信 控制系统 设备 驱动
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内