background image

或配置文件则放在JFFS2文件系统中。

4.3硬件驱动程序的设计

Linux系统内,对硬件设备的管理是通过使用设备驱动

方式实现的【引。操作系统必须向设备提供操作指令,还需要

处理来自设备的中断请求。为此,Linux通过设备驱动程序

为应用程序提供了统一抽象的接口,从而隐藏了大量不同设

备之间的区别和细节。

本文编写的驱动程序全部为字符型设备,图4概括了

Linux下字符型设备的编程模型,包括以下几个方面:

(1)调用入口函数init_module0。主要用于完成设备的初

始化、申请内存资源和卸载时资源的释放。

(2)通过系统调用部分完成对设备的操作过程。例如通过

open,release,read,write,ioctl及release等函数就可以完成应

用系统需要的功能,驱动程序的大部分代码在这里实现。

(3)如果设备与系统之间以中断方式进行数据交换的话,

设备驱动程序通过调用request_irq函数来申请中断,通过

free—irq来释放中断,并实现中断服务函数。

(4)其他基本内核函数,如内存读写函数、物理与虚拟内

存映射函数,等待队列函数等也是经常使用的。

insm晶j

“t_module()I

一'l

register_chrdev0

t/

copy_to user0

…jf磊面‘甭一一一一

COpy

from

user()

open,release,read,1

内存读写函数

write,ioctl及release

—八

物理和虚拟地址映I

处理中断

射函数

—∥

等待队列函数

.嘲ir”el羔rq,I

中断处理函数

卜\

rmmod:

c-emup—modu㈨l

一-{unregister_ehrdev0 l

圈4

Linux设鲁驱动信程模基

本文设计的驱动包括音频驱动、串口驱动、CAN驱动、

LCD驱动。这些驱动程序负责接收硬件的中断,并向上层应

用程序提供API接口。驱动程序模块可以在系统上电后加载,

也可以经编译后作为系统内核的一部分存在。

5・AT91RM9200微控制器在电梯控制中的应甩

智能电梯控制系统包括电梯轿厢控制器、内选操纵盘、

指纹识别模块3部分,轿厢控制器的作用是语音报站、液晶

屏显示、对指纹识别模块传来的验证信息进行控制、并接入

电梯内部CAN网络;内选操纵盘用于按键扫描、楼层信息显

示、点亮指示灯,直接受主控制器的支配;指纹识别模块用

于验证乘客的指纹信息,并把验证信息传给轿厢控制器。

3个模块之间通过串口连接,系统的总体结构如图5所示。

圈5轿厢控■系统

电梯轿厢控制器软件设计应满足以下几点设计目标:

(1)根据串口0传输的电梯楼层信号,进行语音报站;

(2)液晶屏显示人机交互信息,还可以显示小区信息、广

告信息等,提供人性化的服务;

(3)保存有指纹认证人员的资料库,以便根据人员权限选

择相对应的楼层;

(4)串IZi l与指纹识别模块进行通信完成指纹验证;

(5)制定合理、完善、意义明确的串口通信协议,包括站

号、消息帧标志位、头尾校验、和校验;

(6)通过CAN总线将电梯状态数据发到现场总线上;

(7)程序采用模块化设计,使其便于维护和升级。

根据实现的功能进行任务划分,整个控制器的应用程序

包括5个线程,这5个线程分别通过系统调用来读写底层硬

件,并结合在一起实现整套业务功能,软件整体框图如图6。

。弋弋专

main

th佗ad

___一

卜l矿_thread

I一、

kd—llII刊l

c“Jhrcad

j亡

jE

系统调用

圈6应用软件的整体框圈

应用程序的5个线程如下:

(1)main—thread是整个程序的核心线程,其他线程的状态

变化都由它来控制。它的功能包括:根据语音数据存储区保

存的电梯数据进行语音报站;根据指纹数据存储区的验证信

息确定被验证乘客前往的楼层;实时更新电梯状态存储区的

数据o

(2)us0一thread完成与内选操纵盘控制器的通信。串口0

接收到数据后,先进行头尾校验、和校验,然后根据帧头定

义,将不同的信息存储在不同的共享数据缓冲区中。

(3)usl—thread完成与指纹模块控制器的通信,包括向指

纹模块发送验证信息,返回指纹验证信息,将信息存储在人

员ID库。

(4)led_thread动态显示图片、文字、信息,可以根据用

户的需求定制信息。

(5)can—thread将电梯状态存储区的数据以CAN帧的方式

发送到现场总线上。

基于Linux多线程技术编写的ARM轿厢控制器的应用

程序,实现基于现场总线CAN网络的电梯轿厢控制系统,它

除了具备呼梯采集、楼层显示等基本功能外,还提供了智能

化服务,如语音报站、液晶显示、指纹识别等功能。

6结束语

采用ARM+Linux方案具有如下优点:成熟的ARM技术

具有高性能、高集成度、低功耗、低成本、低开发难度等优

点,此外,选用的AT91RM9200芯片提供了丰富的接口,非

常适合系统的需求。选用的Linux操作系统,是开放源代码

(下转第246页)

一243—

 

 

万方数据