嵌入式Linux的远程抄表系统集中器的实现.pdf

上传人:qwe****56 文档编号:74644197 上传时间:2023-02-27 格式:PDF 页数:6 大小:382.92KB
返回 下载 相关 举报
嵌入式Linux的远程抄表系统集中器的实现.pdf_第1页
第1页 / 共6页
嵌入式Linux的远程抄表系统集中器的实现.pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《嵌入式Linux的远程抄表系统集中器的实现.pdf》由会员分享,可在线阅读,更多相关《嵌入式Linux的远程抄表系统集中器的实现.pdf(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、计算机系统应用2 0 10 年第19 卷第7 期朱仕亮何克右(武汉理工大学计算机科学与技术学院湖北武汉4 3 0 0 6 3)摘要:通过分析比较国内外各种现有远程抄表系统的优点和不足。结合当前计算机技术和通信技术的发展和作者的实践经验,实现一种基于$3 C 2 4 4 0 处理器和嵌入式L i n u x 的设计方案;具体说明了该方案的系统架构,并详细介绍了集中器嵌入式软件实现的关键技术。关键词:远程抄表;集中器;嵌x TL i n u xI m p l e m e n t a t i o no fR e m o t eM e t e rR e a d i n gS y s t e mC o

2、n c e n t r a t o rB a s e do nE m b e d d e dL i n u xZ T I US h i-L i a n g,H EK e-Y o u(D e p a r t m e n to fC o m p u t e rS c i e n c ea n dT e c h n o l o g y,W u h a nU n i v e r s i t yo f T e c h n o l o g y,W u h a n4 3 0 0 6 3,C h i n a)A b s t r a c t:T h i sp a p e rf n s t l yi n t r

3、o d u c e st h eb a c k g r o u n da n dc u r r e n ts i t u a t i o no fR e m o t eM e t e rR e a d i n gS y s t e m s,a n dp o i n t so u tt h e i rm e r i t sa n ds h o r t c o m i n g s n e l l,ad e s i g na n di m p l e m e n t a t i o no faR e m o t eM e t e rR e a d i n gS y s t e m Sc o n c

4、e n t r a t o rb a s e do ne m b e d d e dL i n u xi si l l u s t r a t e di n d e t a i la c c o r d i n gt ot h ea u t h o r Sd e v e l o p m e n te x p e r i e n c ei nt h i sf i e l d T h i sp a p e rc o n t a i n st h ea r c h i t e c t I l r eo ft h ew h o l eR e m o t eM e t e rR e a d i n gS

5、 y s t e m,t h es t r u c t u r eo ft h ec o n c e n t r a t o ra n di t ss o f t w a r ed e s i g nm e t h o d K e y w o r d s:r e m o t em e t e rr e a d i n gs y s t e m;c o n c e n t r a t o r;e m b e d d e dL i n u x1引言远程抄表系统,又称为自动抄表系统,是一种利用传感技术、通信技术和计算机技术,对。三表”(即电表,水表,燃气表)的计量数据进行自动读取并传送到远程信息中心

6、进行数据统计、分析和计算的计算机应用系统。旱在上世纪六十年代,美国电话电报公司(A T D 便开始了自动抄表系统的实验开发,但是这种基于电话系统的解决方法由于成本高,未能大规模在实际中应用。随着技术的进步,成本的降低,大规模的使用远程抄表成为可能,特别在那些无法进行人工抄表的场合【1 l。我国从上世纪九十年代开始研发用于远程抄表的智能电子表,现在市场上已经出现了各种技术类型的远程抄表系统。这些抄表系统一般由以下三个典型的部分构成:1)表计信息采集模块,负责将表具计量信息数字化并储存和传输2)网络通信模块,负责收集采集模块采集到的数据并传送给远程的信息处理中心。3)信息处理中心,负责对抄表数据进

7、行统计,分析和计算,以及提供用户查询等功能。目前,收稿时间:2 0 1O-0 2 0 4;收到修改稿时间:2 0 1O-0 3 2 21 4 8 实用案例A p p l i c a t i o nC a s e网络通信模块的主要载体是集中器,其硬件平台大部分还是单片机,软件平台大多采用单流程的循环控制系统或者带有简单的操作系统,他们的优点是开发成本低,能够满足一些基本的功能要求,但主要存在以下不足:1)硬件平台依赖性强,不具通用性,不利于软件的开发,升级和移植:2)单流程的循环控制系统,其响应命令的平均时间较长,使用不方便。3)硬件平台简单导致了它只能使用简单的嵌入式操作系统,这使得软件的开发

8、难度加大,缺乏广泛的应用接口支持,难以适应长期的发展需要【2 l。2 系统整体结构采用A R M 9 内核的$3 C 2 4 4 0 处理器和嵌入式L i n u x 操作系统设计的高性能集中器可以很好地解决上述问题。整个抄表系统分为三个部分:信息中心服务器(一般为供能公司,如燃气公司等),集中器,网络表。如图1 所示。万方数据2 0 10 年第19 卷第7 期计算机系统应用图1 远程抄表系统整体结构图该系统的表具都是智能表,集成了通信和数字化计量模块,能够响应集中器的控制命令,我们称之为远传表。他们和集中器的通信方式有两种,一种是基于R S 4 8 5 总线。这种情况下,如果不加4 8 5

9、中继器,普通4 8 5 总线只能挂3 2 块表具。一种基于C C l1 0 0模块的短距离自组网络无线通信模式,这种情况下,中继器可以连接的表具数目受现场条件对无线信号的影响程度不同而不同。无论是哪种通信方式,对集中器来说,他们都是串口通信。采用远传表的好处是不需要专门配置采集模块,使得整个系统集成度更高。集中器通过网络接口接入小区以太网,可以响应来自移动工作站以及远程信息中心的控制命令,并且可以主动向远程信息中心报告表具异常信息。移动工作站用于管理小区范围的用户抄表,并向远程信息中心提供抄表数据。远程信息中心也可以直接和集中器通信,实时抄收、监控表具的运行情况。可以看出,集中器是整个远程抄表

10、系统的通信中枢,对系统的稳定性起到关键的作用。3 集中器的硬件平台根据集中器的现实需求和扩展需求,我们采用基于A R M 9 内核$3 C 2 4 4 0 处理器的m i n i 2 4 4 0 开发板搭建硬件开发平台。$3 C 2 4 4 0 是一款专门针对功耗和成本敏感的应用系统而设计,它基于A R M 9 2 0 T 内核,标准0 13 斗r nC M O S 工艺,核心电压1 3 v,外围设备电压最高3 3 v,带外扩S D R A M 控制器,3 路串口控制器,2 个U S B 主机控制器,1 个U S B 设备控制器,触摸屏接口等丰富的接口控制器。本系统中的手持配置工具和G P R

11、 S 模块和集中器都是通过串口进行通信的,需要注意的是,$3 C 2 4 4 0 不具备完整R S 2 3 2 串口控制,它的U A R T 0 和U A R T l 只有T x D,R x D,R T S和C T S 四个功能引脚,U A R T 2 只有T x D 和R x D 两个功能引脚【3 l。但是一般的G P R S 模块都需要载波检测引脚D C D 来判断G P R S 是否在线,以及D T R 来控制G P R S 模块的状态,如启动和关闭G P R S 模块。本例中使用的G R 4 7 模块便需要D C D 和D T R 引脚才能正常操作【4 l,解决办法是,从$3 C 2

12、4 4 0 中挑选两个空闲的I O 口来充当D C D 和D T R,然后把这两个引脚和U A R T 控制器的其他现有引脚一块接到M A 3 2 3 2 串口扩展模块上,然后再把G P R S 模块接在这个扩展模块上即可。程序中可以写一个针对这两个引脚的驱动程序来操作G P R S 模块。图2 集中器的硬件接I=I 模块组成连接表具和集中器的4 8 5 网络芯片采用半双工的S P 4 8 5 芯片,成本低,数据传输速率高达S M b p s,完全可以满足表具计量数据规模的通信量。如果表具采用无线方式,则使用C C l10 0 无线收发模块,这是一款为自动抄表系统设计的具有极低功率的U H F

13、 无线收发器,可以工作在3 15 4 3 3 8 6 8 9 1S M H z 的I S M S R D 波段,根据中国的I S M 频率划分,我们这里选择4 3 3 M H z 这个中心频率。手持配置工具完成表具条码扫描输入,配置集中器所管辖的表具信息。它与集中器通过串口进行通信。预留的按键,可以用于通知集中器手持设备的接入和取出以及系统复位等功能。N o rF l a s h 主要用于开发阶段的调试,开发完成后可以不用N o rF l a s h。N a n dF l a s h 主要用于操作系统和程序的存储,相当于P C 机上的硬盘。触摸屏是为将来把集中器设计为可视化操作而预留的。A p

14、 p l i c a t i o nC a s e 实用案例1 4 9万方数据计算机系统应用2 0 10 年第19 卷第7 期4 集中器的软件设计方案4 1 集中器的功能需求集中器是系统中的通信和信息翻译的桥梁,在本系统中,它主要实现的功能有以下几点:1)通过短距离无线射频或者R S 4 8 5 与表具通信,获取表具的运行数据并做相应的数据分析处理。此外,还需要对表具进行必要的控制。2)通过G P R S 或者以太网与远程信息中心服务器通信,接收并分析服务器发过来的命令数据帧,同时向服务器上报表具运行的异常情况。3)手持配置工具通过串口接入集中器,初始化或者更新集中器所管辖的表具信息,以及设置

15、集中器的运行参数,如设置集中器需要连接的服务器的i p 地址和端口号等。此功能主要用于集中器的现场安装以及后期的简单维护。4)以上所有通信都需要遵循一定的协议准则,因而集中器就必须根据这项协议来分析收到的通信帧,并在发起通信的时候组装通信帧。4 2 任务的划分软件系统的整体方案是基于嵌入式L i n u x 的多线程与多进程设计方案。根据集中器的功能需求,我们可以将系统划分为以下三类任务:1)抄表任务,包括定时抄表任务和周期抄表任务:2)通信帧解析任务;3)网络通信任务,包括发送和接收两个任务;4)集中器配置任务,响应手持设备对集中器的设置操作。在本系统中,各任务间具有如图3 所示的数据联系关

16、系。可以看出,除了定时抄表任务和集中器配置任务之外,其他任务都要操作通信帧队列,因而他们之间是数据紧密相关的,应当设计为多线程。需要注意的是,在L i n u x 中,同一进程的多个线程共享一个定时器,而定时抄表任务和周期抄表任务都依赖定时器来触发其工作。所以,如果把定时抄表任务也设计为线程,那么就需要用软件设计技巧来模拟两个定时器的功静s l。但这样做就使得简单的功能却实现得比较复杂,不具可读性,因而我们把定时抄表任务作为独立的进程来运行。集中器配置任务需要和手持配置工具进行通信,通信协议与集中器和服务器的通信协议格式类似,可以和帧解析任务共享一些分析校验通信帧的可重八函数,故这里把集中器配

17、置任务设计为线程。这样,整个任务结构就如图4 所示。1 5 0 实用案例A p p l i c a t i o nC a s e图3 任务间的主要数据联系主进程刻图图图图医4 3 各任务的实现4 3 1 网络通信任务主进程在完成必要的初始化信息后,首先产生一个子进程,用于定时抄表,然后创建周期抄表线程和帧解析线程,最后连接远程服务器,连接成功后,创建一个专门用于发送数据的套接口发送线程和一个专门用于接收数据的套接I:1 接收线程,之后主进程就等待所有线程的结束并判断每个线程是否正常结束。如图5 所示。如果套接口在中途发送异常,全局套接口号将被置为负数,然后发送线程或接收线程将通过信号告知主线程

18、重新连接并在成功连接后更新全局套接口号。这种设计使得集中器完全是作为客户端(c l i e n t)运行的,不具备监听外部连接的功能。之所以这样设计是由于集中器一般都是使用局域网内部的j p 地址,通常不具备监听来自局域网之外的连接请求的条件。其次,集中器不具备监听功能也简单地防止了对集中器的一些恶意登陆,提高了安全性。由于使用的是线程,发送和接收可以在不同的线程中完成,都可以使用阻塞型I O 函数,代码功能清晰,避免了使用多路选择函数(如s e l e c t 函数)带来的复杂性【6 l。在使用G P R S 模块连接服务器的系统中,主线程连接远程服务器的过程就是连接G P R S 的过程,

19、只是接收线程和万方数据2 0 10 年第19 卷第7 期计算机系统应用发送线程共用的是G P R S 模块的串口而不是套接口。网络通信线程的流程如图6 所示。区壅h涮窜 哪富IR 匿曩才夏网II 丝宰:型Il罔钿ll率Il巴空l星Ih图S主进程的流程图导 科御i f 铲,miI锄I多I 且斥。;目H 秀器lI下仃啊!队刘I一厂一l 通t x 等谋处理I图6网络通信任务流程图4-3 2 帧解析任务帧解析线程完成对服务器命令帧(即服务器下行帧)的解释并执行相应的操作,然后再把操作的结果生成一个集中器的响应帧(即集中器上行帧)返回给服务器。帧解析线程是所有线程中功能最多的,完成了集中器大部分的功能,

20、包括集中器的参数设置,对表具的实时控制,更新表具参数等,也是与其他线程交互最多的线程,所以帧解析线程涉及到多个同步关系,如图3 所示。帧解析线程在服务器下行帧队列有数据时取出一条通信帧,然后依次分析帧起始符是否正确、校验码是否正确,如果没有异常即开始执行帧功能码所表示的任务,最后返回执行结果给服务器。完成一次帧解析过程,再次进入等待服务器下行帧队列的数据。其流程如图7 所示。由于集中器和表具的通信是主从应答式的,表具发给集中器的通信帧一定是对集中器的命令的响应,故只要在抄表函数中校验一下该帧是否合法并且没有错误即可,不需要根据帧的功能分发任务,所以表具和集中器之间不需要帧解析任务。等待m 主务

21、器F 打帧队列白数擗玎i 取出铵埔 习|l!j l j i 棱骑啦f 确?、丫一一Y执行功8 印 肘z 牛的仔务l 诚丰幢戳行结果返帧f 八粜 1 捕I 上二T j-列图7 帧解析任务流程图4 3 3 抄表任务抄表任务负责收集集中器所管辖的所有表具的运行数据并保存在相应的文件中。根据应用需求,如3 2节所述,系统中有两个抄表任务,一个是周期抄表线程,另一个是定时抄表进程。周期抄表线程由抄表闹钟触发抄读集中器管辖的所有表,并对抄收结果的各个数据项进行分析,如若发现有异常情况,比如表具欠费等,产生一个报告表具异常的通信帧给网络通信线程,然后把抄到的数据存放在周期抄表文件中,等待下一个抄表闹钟的到来

22、。另一个是定时抄表进程,它在定时抄表闹钟触发抄读所有表,但并不分析抄到的数据,只是把它们原样保存在一个定时抄表文件中,待服务器在后来查询。定时抄表进程可以只响应闹钟信号,屏蔽(m a s k)其他所有能屏蔽的信号,简化程序设计。如3 2 节所述,同一进程的所有线程共享同一个定时器,所以,帧解析线程在获得服务器更新抄表周期的请求后,直接在本线程中设置闹钟即可,但需要保证只有周期抄表线程响应闹钟信号,因为闹钟信号具体发给哪个线程是不确定的【s l。抄表任务的流程A p p l i c a t i o aC a s e 实用案例1 5 l万方数据计算机系统应用2 0 10 年第19 卷第7 期如图8

23、 所示。执行周期抄表忑定时秒表进程周期抄襄线程图8 抄表类任务的流程图4 3 4 集中器配置任务集中器配置任务监视串口上有没有设备接入,当串口有接入数据可读时,读取并尝试拼凑一个完整的通信帧,在成功拼凑并校验通过后,执行该帧的功能,然后给配置设备一个返回信息,之后再次进入等待串口数据的状态。该任务也可以设计为睡眠等待按键信号,有按键后才打开串口并与手持设备通信,配置完成后,再次按键则关闭串口,任务进入等待下一次按键中。该任务流程简单,没有用图示。4 4 线程间的同步和通信协议设计多任务程序必须处理好任务间的同步和互斥问题,不同线程对同一数据进行不恰当的竞争存取会导致数据的不一致,互斥是一种特殊

24、的同步。线程同步的手段一般有信号量、互斥量、读写锁、和条件变量。为了让中心服务器随时可查上一次周期抄表和定时抄表的结果,我们把这些数据都以文件的形式保存起来。本系统中多线程对通信帧队列的同步问题可以使用经典的“生产者消费者”问题的多生产者子类型解决。以集中器上行帧队列的同步为例,首先定义通信帧循环队列数据结构:t y p e d e fs t r u c t S V R F R P T _ R M Tb a s e p:i n tf r o n t;头指针,弹出数据的位置i n tr e a r;尾指针,新元素插入的位置 S C U:1 5 2 实用案例A p p l i c a t i o

25、nC a s e其中,b a s e P 是指向实际存储数据的数组,f r o n t和r e a r 分别表示队列中首元素和尾元素在这个数组中的下标索引。S V R F R 盯-R M T 是自定义的集中器和服务器的通信帧协议结构类型。定义如下:t y p e d e fu n i o n u _ c h a rt o p h a l t T I O P H A L F L E N ;s t r u c t u _ c h a r p r e f i x P R E F I X L E N ;起始符u _ c h a r h e a d e r H E A D E R _ L E N ;帧头

26、U c h a r f u n c o d e【F U N C O D E L E N ;功能码U c h a r e r r c o d e E R R C O D E L E N ;错误码u _ c h a r d a t a I e n【D A T L E N C O D E L E N ;I 帧长u _ c h a r r p t n o N O L E N ;集中器编号U c h a r e x t r a 0 ;L i n u x 中,长为零的数组实际上起到指针的作用,但不占空间 w h o l e;S V R F R P T R M T:帧的前半部分是固定的,是一些控制信息,中间

27、是通,信数据,最后是对整个帧的奇偶校验码和结束符,结构中没有体现,包括通信数据一块,实际存储在一e x t r a指向的空间中。为了方便访问结构体(s t r u c t)内联合体(u n i o n)的变量,可以在结构体中定义宏:#d e f i n ef r m e x t r aw h o l e 一e x t r a 来访问。由于通信帧之间数据长度相差太大,有的只是简单的应答帧,帧长很短,有的却需要返回集中器管辖的所有表的抄表数据,所以S V R F R 盯-R M T 的最后只定义了一个零长的数组指向通信数据实际存放的位置的指针索引研。定义两个分别表示队列有数据和队列已空的信号量用于

28、生产者(包括帧解析线程和周期抄表线程)和消费者(s o c k e t发送线程)的同步:s e m ts e m s v r f r m q e m p t y:队列空闲位置计数s e m ts e m s v r f r m q f u l l;队列可用通信帧计数初始化s e m s v r f r m q e m p t y 为队列的大小,s e m s v r f r m q f u l l 为0。定义互斥操作队列的互斥量p t h r e a d m u t e x tm u t e x b k 2 s v r f r m q。生产者线程在s e m s v r f r m q e m

29、 p t y 信号上等待,消费者线程在s e m s v r r r m q f u 信号上等待。等待通过后,使用互斥量互斥更新通信队列。(下接第17 8 页)竹砸q 帧雨辟行算h 上Y辜升器曩。巾莨帕集甲信八万方数据计算机系统应用2 0 10 年第19 卷第7 期则返回给拟稿人进行修改;如果选择会签,则在会签人员会签完,再由办公室复核公文,然后再到主管院领导审批公文;如果在某些特定的情况不要会签,则可以直接到主管院领导审批;主管院领导审批发现问题则退还拟稿人进行修改,否则递交院长签发:院长签发公文,并交给院办下发;院办根据实际需要下发公文,并将公文整理归档。以上的每个流程的环节都可以看作是一

30、个任务,为其指定相应的角色按照一定的顺序协作完成,并且根据公文的处理情况选择下个环节。4 结语基于任务和角色的访问控制模型是一种面向工作流安全策略的有效的访问控制方法。我们解释了该模型中的重要概念及约束关系,通过访问控制实现了基于任务和角色的授权安全性。T R B A C 相对于传统的访问控制模型来说,是一个重要的发展和改善,具有极其广泛的应用范围。文章以某院协同办公系统的公文处理流程为例,介绍了T R B A C 模型在企事业单位中的应用。但T R B A C 中有关任务的分类与分配以及模型更加适合复杂的环境和各种例外情况等,仍有许多值得研究的地方,这将是我们以后研究的问题。参考,J 氏l

31、沈海波,洪帆访问控制模型研究综述计算机应用研究,2 0 0 5,2 2(6):9 1 1 2 邓集波,洪帆基于任务的访问控制模型软件学报,2 0 0 3,1 4(1):7 6 8 2 3S a n d h uRC o n y n eE J,L f e i n s t e i nH R o l e b a s e da c c e s sc o n t r o lm o d e l s I E E EC o m p u t e r,1 9 9 6,2 9(2):3 8 4 7 4 许春根,江于,严悍基于角色访问控制的动态建模计算机工程,2 0 0 2,2 8(1):11 6 一1 18 5 文家

32、福,王嘉祯,杨素敏基于角色和任务的工作流访问控制模型及其应用计算机应用研究,2 0 0 7,2 4(9):1 6 8 1 6 9 6 钟华,冯玉琳,姜洪安扩充角色层次关系模型及其应用软件学报,2 0 0 0,l1(6):7 7 9 7 8 4(上接第15 2 页)5 结语通过使用A R M 9 内核的处理器和嵌入式L i n u x 操作系统,集中器系统的可靠性得到很大的提高,软件开发的速度也得到了加快,同时也降低了设计复杂功能的难度并具有极高的可扩展性和可移植性。初步的实践证明是非常可行的。考,o 吠1T o mD,T a m a rK i n A u t o m a t i cm e t

33、e rr e a d i n g P u b l i cP o w e r 19 9 2,5 0(5):8 0 8 4 2 和晓军,刘磊网络电能表集中器的设计与实现计算机与现代化,2 0 0 9,7:8 9 11 7 8 应用技术A p p U,dT e c h n i q u e3S a m s u n gE l e c t r o n i c s$3 C 2 4 4 0 AU s e r SM a n u a l 2 0 0 4 3 3 23 5 3 4S o n yE r i c s s o n A p p l i c a t i o nN o t eU s i n gA TC o m m a n d st oc o n t r o lT C P I Ps t a c ko nG R 4 7 G R 4 8 2 0 0 3,6 9 5S t e p h e nA R a g o 表尤晋元等译U n i x 环境高级编程(第二版)北京:人民邮电出版襁2 0 0 6 3 3 3-3 3 4,3 3 5 3 3 7 6B u t e n h o fD R P r o g r a m i n gw i t hP O S I XT h r e a d,1 9 9 7:2 0 2 4 7L i n u x 设备驱动开发详解北京:人民邮电出版社,2 0 0 8 6 5 6 7 万方数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com