首页资源分类嵌入式处理器ARM MPU > 基于ARM的多对象远程抄表系统集中器的设计与实现

基于ARM的多对象远程抄表系统集中器的设计与实现

已有 445148个资源

下载专区

文档信息举报收藏

标    签:arm多对象对象远程远程抄表

分    享:

文档简介

智能电表、水表、煤/燃气表、热量表等大量地出现在人们的生活中,同时这些仪表的抄录工作变得越来越烦琐,工作量大,工作效率低,不仅给用户带来不便,而且会存在漏抄、误抄、估抄的现象。随着电子技术、通信技术和计算机技术的飞速发展,人工抄表已经逐步被自动抄表所代替。 集中器是一个数据集中处理器,是多对象自动抄表系统的通信桥梁,负责对各智能表的数据进行采集、存储和管理,及时有效地向上位机传输数据并执行上位机发送的指令。提高多对象集中器数据处理能力,有效完成上下行通信是多对象自动抄表系统AMRS(Automation Meter Reading System)目前需要解决的关键问题。 本文针对多对象集中器这样一个较复杂的通信与控制系统,提出采用32位的高性能嵌入式微处理器。32位ARM9微处理器处理速度快、硬件性能高、低功耗、低成本,集成了相当多的硬件资源,硬件的扩展和设计大大简化,ARM9(S3C2410)为工业级芯片,抗干扰能力强,能够适应运行现场的较恶劣环境,8/16位微控制器运算能力有限,对于较复杂的通信与控制算法难以顺利完成;硬件平台依赖性强,不利于软件的开发、升级与移植;在缺乏多任务调度机制的情况下,应用软件不仅实现难度大,且可靠性难以保证。 本文首先对多对象远程抄表系统的总体结构进行研究,主要研究了多对象远程抄表系统中集中器的软件和硬件实现,对硬件资源进行了外围扩展,对S3C2410微处理器芯片的外围硬件进行了扩展设计,使之具备了满足使用需求的最小系统硬件资源,包括时钟、复位、电源、外围存储、LCD、RS-485通信模块、CAN通信模块等电路设计。实时时钟为多对象集中器定时抄表提供时间标准;电源电路为多对象集中器系统提供稳定电源;看门狗电路的设计保证多对象集中器系统可靠运行,防止系统死机;数据存储器主要用于存储参数、变量、集中器自身的参数,负责智能表的参数以及智能表用量等。上行通道即多对象集中器与上位机之间的通信线路,采用CAN现场总线进行通信;下行通道即多对象集中器与智能表之间的通信,采用RS-485总线进行通信。软件设计上,主要针对多对象集中器的数据存储功能和串行通讯功能进行程序编写。基于ARM的多对象远程抄表系统集中器可以实现多对象远程抄表,提高了数据处理能力,有效完成了上下行通信,可靠性强,稳定性高,结构简单。

文档预览

哈尔滨理工大学 硕士学位论文 基于ARM的多对象远程抄表系统集中器的设计与实现 姓名:叶梦君 申请学位级别:硕士 专业:控制理论与控制工程 指导教师:刘露 20090301 哈尔滨理工大学工学硕士学位论文 基于ARM的多对象远程抄表系统 集中器的设计与实现 摘要 智能电表、水表、煤/燃气表、热量表等大量地出现在人们的生活中, 同时这些仪表的抄录工作变得越来越烦琐,工作量大,工作效率低,不仅给 用户带来不便,而且会存在漏抄、误抄、估抄的现象。随着电子技术、通信 技术和计算机技术的飞速发展,人工抄表已经逐步被自动抄表所代替。 集中器是一个数据集中处理器,是多对象自动抄表系统的通信桥梁,负 责对各智能表的数据进行采集、存储和管理,及时有效地向上位机传输数据 并执行上位机发送的指令。提高多对象集中器数据处理能力,有效完成上下 行通信是多对象自动抄表系统AMRS(Automation Meter Reading System)目 前需要解决的关键问题。 本文针对多对象集中器这样一个较复杂的通信与控制系统,提出采用 32位的高性能嵌入式微处理器。32位ARM9微处理器处理速度快、硬件性 能高、低功耗、低成本,集成了相当多的硬件资源,硬件的扩展和设计大大 简化,ARM9(¥3C2410)为工业级芯片,抗干扰能力强,能够适应运行现场 的较恶劣环境,8/16位微控制器运算能力有限,对于较复杂的通信与控制 算法难以顺利完成;硬件平台依赖性强,不利于软件的开发、升级与移植; 在缺乏多任务调度机制的情况下,应用软件不仅实现难度大,且可靠性难以 保证。 本文首先对多对象远程抄表系统的总体结构进行研究,主要研究了多对 象远程抄表系统中集中器的软件和硬件实现,对硬件资源进行了外围扩展, 对¥3C2410微处理器芯片的外围硬件进行了扩展设计,使之具备了满足使 用需求的最小系统硬件资源,包括时钟、复位、电源、外围存储、LCD、 RS一485通信模块、CAN通信模块等电路设计。实时时钟为多对象集中器定 时抄表提供时间标准;电源电路为多对象集中器系统提供稳定电源;看门狗 电路的设计保证多对象集中器系统可靠运行,防止系统死机;数据存储器主 要用于存储参数、变量、集中器自身的参数,负责智能表的参数以及智能表 哈尔滨理1=大学工学硕士学位论文 用量等。上行通道即多对象集中器与上位机之间的通信线路,采用CAN现 场总线进行通信;下行通道即多对象集中器与智能表之间的通信,采用RS- 485总线进行通信。软件设计上,主要针对多对象集中器的数据存储功能和 串行通讯功能进行程序编写。基于ARM的多对象远程抄表系统集中器可以 实现多对象远程抄表,提高了数据处理能力,有效完成了上下行通信,可靠 性强,稳定性高,结构简单。 关键词远程抄表;多对象;集中器;ARM9 哈尔滨理工大学工学硕上学位论文 Design and Implementation of the Concentrator Remote Meter Reading System Based on ARM Abstract There are lots of meters in people’daily life,like intelligent ammeters, intelligent water meters,intelligent gas meters,intelligent heat meters etc. Meanwhile keeping the daily copying of these meters become increasingly arduous.Besides,the manual copying,the mistaken copying and missed copying are inevitable.With the rapid development of electronic communication and computer technology,the automatic meter reading replace the traditional meter reading. Concentrator is the data concentrate processor,and the highway of data communication in the multi-object automatic meter reading.Collecting,saving and managing of the meters’data would be the main task of the concentrator. Transmiting data to upcomputer in time and executing the orders come from upcomputer would also be the main of the concentrator.Enhancing the multi- object concentrator’S data processing ability and realizing the communication between up and down computers effectively have become the key problems for automation meter reading system to solve. Such a complex communication and control system as the multi—object concentrator was focused.Universal 32 bit high performance built—in microprocessor has been used in the thesis.32 bit ARM9 microprocessor will be the automatic meter reading’processor in the thesis.The ARM9 processor has high performance in many aspects,for instance,its process speed is high,the power consumption is low,and low price to purchase,while,its high anti- jamming performance,and running well in awful working place make it the industry rank chip.8/1 6 bit microcontroller has poor performance in computation, as highly depend on the hardware,it’S no so good in soft—ware development, ..III. 哈尔滨理工人学工学硕十学位论文 update and transplant.Without the presentation of multitask control mechanism, not only the realization of applications is a big challenge,but also no assurance to the applications’reliability. First,the multi—obj ect remote reading meter system entire structure was researched in the thesis.The software and hardware realization of the system concentrator in the were researched in the thesis.Accomplished peripheric hardware resource’S expansion,¥3C241 0 microprocessor has demanding minimum hardware resource such as external storage,LCD,clock, reset,power supply,RS-485 communication module,CAN communication module.The real—time clock provide standard time to the timing auto—apparatus which equipped multi-object concentrator.While the stabilized power supply of the concentrator comes from the circuit power supply.To ensure the stabilized working of the concentrator as while as avoid system halted,the watchdog module Was designed.The main task of the data storage here is storaging parameters,variants,the parameters of concentrator,and managing the data of communication the intelligence apparatus.We defined the up—link as the line between the concentrator and the upcomputer,of which,the communication mode here adopted the CAN field bus;while,the down—link as the definition is the communication line between the concentrator and the apparatus,it adopted the RS-485 communication mode.After the introduce of hardwares,the software part was described.Focus on the data storage function of the multi-object concentrator and its serial communication function,the programme specially Wffl'e written.The multi-object remote apparatus concentrator based on the ARM technology has much advantage,such as higll performance of data processing, making the up and down communication work,and high stable,high cost performance,etc. Keywords Remote meter reading,Multi-object,Concentrator,ARM9 ..IV. 哈尔滨理工大学硕士学位论文原创性声明 本人郑重声明:此处所提交的硕士学位论文《基于AI蝴的多对象远程抄 表系统集中器的设计与实现》,是本人在导师指导下,在哈尔滨理工大学攻读硕 士学位期间独立进行研究工作所取得的成果。据本人所知,论文中除已注明部 分外不包含他人已发表或撰写过的研究成果。对本文研究工作做出贡献的个人 和集体,均已在文中以明确方式注明。本声明的法律结果将完全由本人承担。 作者签名:研榜秀 日期:zo口7年吾月2 z日 哈尔滨理工大学硕士学位论文使用授权书 《基于ARM的多对象远程抄表系统集中器的设计与实现》系本人在哈尔 滨理工大学攻读硕士学位期间在导师指导完下成的硕士学位论文。本论文的研 究成果归哈尔滨理工大学所有,本论文的研究内容不得以其它单位的名义发 表。本人完全了解哈尔滨理工大学关于保存、使用学位论文的规定,同意学校 保留并向有关部门提交论文和电子版本,允许论文被查阅和借阅。本人授权哈 尔滨理工大学可以采用影印、缩印或其他复制手段保存论文,可以公布论文的 全部或部分内容。 本学位论文属于 保密口 ,在 不保密团。 年解密后适用授权书。 (请在以上相应方框内打4) 叶黟另 作者签名: 日期:加7年弓月22日 导师签名:夏,1蟊 日期:如口彳年多月乙t,日 哈尔滨理工大学工学硕士学位论文 第1章绪论 智能电表、水表、煤/燃气表、热量表等自动抄表技术是集计算机技术、 通信技术及计量技术于一体,具有计量准确、方便、抄收速度快、易于管理等 优点,既节省人力又可以避免人为因素造成的误差,是电、水、煤/燃气等收 费的主要趋势,同时也符合国内住宅小区智能化的发展需求【¨。随着智能化小 区的建设,多对象抄表系统集中器逐步普及,所使用的通信媒体包括:红外 线、双绞线、无线电、电话线、光纤、电力线及现场总线等f2】。但寻求更简单 更可靠的通信方式,仍旧是一个热门话题。 1.1国内外多对象自动抄表系统的发展及现状 在国外,自动抄表技术发展较早,二十世纪八十年代中期,国外就开始安 装和投入使用IC卡自动抄表、电力载波自动抄表、远程自动抄表系统 AMRS(Automatic Meter Reading System)。智能IC卡自动抄表技术源于国外, 它是将用户信息存入卡中,利用微机技术、IC卡技术进行数据管理的方法。该 方式有着自身的优点:采用预付费方式,避免纠纷;无需敷设管线及线路维 护;限量消费,节约能源。但是IC卡自动抄表方式也有着以下很多的弱点: (1)技术不成熟,主要表现在经常出现误报警,即用户IC卡中尚有足够用量的 情况下,表也会产生报警,并且停止供应,造成即便有卡也不能用水、用电、 用气的情况,给人们造成一定的困扰;(2)利用IC卡预付费这种方式,造成先 买单后吃饭的问题,缺少人性化,因此只适用于散户,不便于集中物业管理。 国外IC卡抄表方式只是在一些低档的或流动性场所使用,至今仍未被广泛应 用。另外此种方式需要用户到指定部门购买IC卡,把本来属于卖方的劳动由 买方来承担,不能体现便民性:(3)用户不能及时了解自己的消费情况,无法 及时地核实自己的耗能数据;(4)随着电子技术的发展,IC卡越来越容易被解 密,造成假卡或造成控制系统失效,难以取证认定,易发生纠纷。IC卡受到攻 击后对住户或国家都会造成损失;(5)难以上网查阅,并且对水、电、气难以 进行动态管理;(6)需制造专门的智能仪表,提高了系统的成本;(7)售后服务 很难解决,如果IC卡或智能仪表出现问题,必须及时维修,这给物业部门和 管理部门造成巨大的负担;(8)IC卡抗干扰能力差,价格高,寿命短,综合效 益差。IC卡自动抄表方式不适合于智能化小区的多对象自动抄表【3l。电力载波 哈尔滨理工大学工学硕}:学位论文 自动抄表方式的优点是利用电力线传输,无需敷设线路,节省资源。虽然此种 方式有明显的优点,但并没有在我国得到广泛地使用,主要是因为关键技术不 能解决。目前我国住宅小区使用的是低压电力网,低压电力网由于频率低,通 道特性不具备一般性,即不同线路的特性差异很大或线路信道具有时变性,而 且线路噪声功率较其它线路大,所以在这样的通道上实现常规的窄带传输比较 困难。其缺点主要表现为㈣:(1)电网在传输数据过程中,经常受到无线电信 号、电磁信号、脉冲信号的干扰,导致传输数据错码、丢码;(2)家用器启动 时瞬间电压极大,产生许多脉冲信号,这些干扰信号叠加在电网上,造成数据 与原表的误差;(3)传输距离有限,由于配电变压器对电力载波信号有阻隔作 用,电力载波信号只能在一个配电变压区域范围内传递,数据传输距离受到限 制。要想充分利用电网进行载波就必须解决抗干扰接收问题和信号处理问题。 然而我国的电网的纯净度差,想要解决它,不但要相当大的投资,而且必须解 决许多关键性的技术问题,目前还很难实现。多对象远程抄表方式具有以下特 点:(1)信号传输有自己专用的通道,不容易受到其它信号的干扰,计量准确 性比较高;(2)传输距离可以比较远,远程抄表方式一般采用总线方式进行数 据传送,只要总线选择合适,传输距离可由几米增加到几千米;(3)关键技术 日趋成熟,技术可靠性高[71。 现在已有不少著名厂商已生产出AMR系列产品,而且对AMR的研究也 越来越深入。80年代中期以来,美国在多对象AMR技术的开发和应用上就已 取得了长足的进步【81:在科罗拉多州丹佛市,一家公用事业企业将77万余台电 表和67万余台煤/燃气表实现了自动抄表,成为当时美国推广应用量最大的一 家公司;1994年lO月美国《电世界》摘要介绍Chartwell公司对北美22个电 力公司和31个产品供应商的调查结果也指出【91:北美(主要指美国和加拿大)在 1994年初就己装了314,063块具有自动抄表功能的电度表;安装了197,377 个自动抄表单元;“1998 Scott.Report on AMR Deployments’’资料披露,在 1998年度,美国共有791项AMR应用项目,其中约有550万台电表实现了自 动抄表。到2001年己经有9.1百万美元的营业额。而在Scott报告中,截至到 2003年1月,北美已经有49,3ll,372个单位使用多对象自动抄表。九十年 代初多对象自动抄表技术逐渐成熟,在世乔各地得到了迅猛的发展。2002年全 球部分国家和地区的多对象AMR数据如下:北美1800万单元,欧洲176万 单元,日本59万单元等等。 另外,美国于1986年就建立了多对象自动抄表技术协会(AMRA),每一 年半左右开一次国际性年会,每次年会前都有专题报告,近年又成立了欧洲多 2 哈尔滨理工大学工学硕十学位论文 对象自动抄表技术协会(EURO.AMRA)和英国多对象自动抄表协会 (UK.AMRA),各种新的技术不断推陈出新,推动着整个自动抄表技术行业的 发展。 国内80年代初,大部分地区仍然以人工抄表为主,远程集中抄表发展的 势头迅猛。最初有些发达地区采用手掌机人工抄表,然后自动录入相应管理系 统,这种表数据录入还是人工进行,没有真正解决劳动强度大的问题,而且容 易产生人为误差等问题,针对这种情况,多对象远程抄表系统集中器便应运而 生。 近几年随着电子技术、传感技术、自动控制技术、计算机信息技术以及网 络技术的迅猛发展,越来越多的高集成度,功能强大的电子器件被开发出来, 使得多对象集中器越来越普遍。除此之外,实现电表、水表、煤/燃气表、热 量表户外自动抄表也得到了国家政策上的支持,建设部《2000年小康型城乡住 宅科技产业工程城市示范小区规划设计导则(修改稿)》中已明确提出:“推广 使用户外计量(含水、电、暖、燃气表)技术"。在《中国住宅户年品发展纲 要》中也明确提出:实现方便查表、不干扰住户、大量人工查表工作,逐步过 渡到数字化传递,开展智能化水、电、气、热集中器装置及接口箱柜,智能化 集中装置的开发要达到准确计量、抗干扰能力强、稳定性与耐久性好、使用安 全、防盗等基本技术性的要求。由此可见智能表的户外自动抄表不论从技术上 还是从政策上都具备了可行性。因此,它必将替代传统抄表方式成为住宅建筑 的通用标准而不断地发展完善,从而为人们的生产生活提供更加舒适方便的服 务。 但是,寻求多对象集中器的简单可靠的通信方式,仍是一个热门话题,特 别是美国、欧洲及日本,有很多公司从事着这个领域的研究和开发。国内也有 不少公司和企业在进行这方面的研究和开发。目前已推出的抄表系统覆盖了很 多应用领域,所使用的通信媒体包括:红外线、双绞线、无线电、电话线、光 纤、电力线及现场总线等。抄表系统既可以采用单一媒体,也可以采用多种媒 体结合。目前国内常用的数据通信模式有:RS一485总线方式、低压电力线载 波方式、公用电话线通信方式、CAN总线等。 1.2多对象远程抄表系统集中器的通信方式 多对象远程自动抄表系统集中器的通信方式可从两个层面进行介绍,分别 为上行通信和下行通信。上行通信是星形网络结构,以中心计算机为中心,以 哈尔滨理工大学1=学硕上学位论文 发散的方式通过通信网络一对N的连接,有两个特点:一是多对象集中器的覆 盖面很广,具有分散性;二是用户数量多,信息数据量较大。这些特点对多对 象集中器的通信方式提出了较高的要求:一方面能将数据及时准确地传送,确 保数据的实时性和安全性;另一方面又要求成本不能太高,而且还要有较强的 抗干扰能力。比较成熟的主要有光纤、电话线、现场总线等。下行通信由于节 点多,传输速率要求不高,距离较短,所以下行近距离数据传输方案不断地吸 收通信领域和总线技术的通信方式,比较成熟的主要有RS-485总线、电力载 波、短距离RF无线等。随着电子技术,网络通讯技术的快速发展,已经出现 了多种通信方式可供选择,各种方式的性能、特点、成本也各不相同,针对不 同的要求和不同的智能表具有的客观条件,多对象远程自动抄表系统集中器的 设计可以选用不同的通信方式。下面对常见的远程通信方式进行分析比较,寻 求简单可靠的多对象远程抄表系统集中器的通信方式【Io-nl。 1.光纤通信方式 光纤通信具有频带宽、传输速率高、传输距离远以及抗干扰性强等特点, 适合上层通信网的要求。但因其安装结构受限制且成本高,故很少在多对象自 动抄表系统集中器中使用。 2.电话线通信方式 电话线通信的主要缺点是:线路的连通时间较长,从几秒到几十秒抄表计 算机系统频繁的拨号读数形成了对用户的“电话干扰”,数据传输速率较低。 对于需要频繁抄送仪表、仪表数据量较大的系统来说,此种方法效率较低。此 外,电话抄表方式受限于电话网的铺设场所,工作需要电信行业的配合,主要 应用在居民小区,对于位于野外场所的一些工控仪表,将无法直接实施。若采 用单独布线的方案,工作量较大,不仅增加了制作成本,而且存在通道易遭到 破坏的问题。因此,在实际应用中电话抄表方式易受到用户抵制而不易推广, 随着新技术的出现,使用该技术的多对象远程自动抄表系统集中器在实际现场 的运用己越来越少。 3.电力载波通信方式 电力载波通信的原理是把表的数据通过智能表控制器将数据调制,通过电 力线传送,在接收端解调还原成数字信号,并将数据传送到中心计算机,在同 一台配电变压供电范围内统一编址,由终端设备巡回读写。低压电力线载波通 信的基本原理如图1-1所示。 4 哈尔滨理T大学工学硕士学位论文 数字终端卜叫调制电路卜叫放大器卜-.1滤波器卜-叫耦合电路 磊孬b雨磊砰稠-医鬲U而 I一 发送机 一’ 220V 接收机 图卜l电力线载波通信的原理框图 Fig.1一l The Schematic Framework Power Line Carder Communication 4.无线电通信方式 无线电通信是利用控制端的小功率无线发送器和接收器实现数据的传输, 对于不同类型的表就比较麻烦,如编号、信号频率通道的设置都有所不同。国 外普遍采用此种方式,但此种抄表更适合应用于分散的关口计量仪表的抄收。 5.有线电视网通信方式 有线电视网通信是利用现有的有线电视网实现自动抄表,这种网络是可视 的,信息回传通道未加入,实现起来较为复杂,此种方式正处于探讨阶段。 6.现场总线CAN通信方式 CAN(Controller Area Network)即控制器局域网络,属于现场总线的范畴, 它是一种有效支持分布式控制或实时控制的串行通信网络。CAN总线的分布 式控制系统具有以下优越性【121: (1)CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优 先权(取决于报文标识符),采用无损结构的逐位仲裁的方式竞争向总线发送数 据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使 不同的节点同时接收到相同的数据,这些特点使得总线构成的网络各节点之间 的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵 活性。 (2)CAN总线通过CAN控制器接口芯片的两个输出端CANH和CANL 与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只 能是低电平或悬浮状态。这就保证不会出现像在RS-485网络中,当系统有错 误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节 点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使 总线上其他节点的操作不受影响,从而保证不会出现像在网络中,因个别节点 出现问题,使得总线处于“死锁”状态。 (3)CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实 哈尔滨理工大学工学硕上学位论文 现,从而大大降低系统开发难度,缩短了开发周期。另外,与其它现场总线比 较而言,CAN总线具有通信速率高、容易实现、低成本、高可靠性、实时 性、抗干扰能力强且性价比高等诸多特点的一种已形成国际标准的现场总线。 这也是目前CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。 7.RS一485总线通信方式 RS-485总线方式的抄表系统主要是将智能表与集中器之间以485总线网 络进行连接,完成数据的发送和接收,通信网结构如图1-2所示【131。RS-485 总线作为一种多点差分数据传输的电气规范,己成为业界应用最为广泛的标准 通信接口之一。这种通信接口允许在简单的一对双绞线上进行多点双向通信, 它所具有的噪声抑制能力、数据传输速率、电缆长度及可靠性使其能够很好的 满足工业控制领域要求。RS-485总线的传输介质采用双绞线,技术成熟、简 单,在通信信道正常的情况下通信稳定、可靠、可以实现实时通信。该方式在 抗干扰性、广泛共模范围、充足的数据速率以及多点功能方面具有众多优势。 图1-2 RS-485总线网结构图 Fig.1—2 RS-485 Bus Network Sll-uenll屯 本系统管理中心与集中器之间采用CAN总线进行通信,集中器与智能表 之间采用RS一485总线进行通信。 1.3多对象集中器的工作原理及其优点 多对象远程自动抄表系统中集中器的工作原理是利用电子技术和传感器技 术制造出具有远传功能的智能仪表,再在室外安装一套集中系统,将每一个智 能表传出的数据送到集中器中,然后通过总线将数据传给上位机再进行处理, 实现定时抄表的功能。多对象远程自动抄表系统集中器具有如下优点【14l: 1.方便抄表工作,工作效率高 多对象远程抄表系统集中器以精确的构思,解决了管理部门与用户的矛 盾。以往每一个住宅楼都需派专人抄表,不仅抄收数据繁琐,而且统计困难。 采用远程自动抄表系统集中器后,计算机直接采集每个住户的电、水、气数 6 哈尔滨理rT大学-T学硕上学位论文 据,并进行分析、整理、存储,同时计算出相关的费用,使能源供应公司及物 业管理部门从根本上减少人工上门抄表带来的繁杂低效的运作模式。准确而便 捷的收费系统,既减少工作人员又减少供应公司与客户之间的纠纷,从而提高 管理部门的工作效率。从社会效益讲,同步实现了集中智能管理,减少了人为 因素带来的诸多不利。 2.维护方便、升级容易 多对象集中器正常运行后将处于免维护状态。若需要更换网络中设备,只 要在更换后通过微机重新设置有关参数即可,无需变动现场其它硬件及参数, 整个操作仅需几分钟。若要对多对象集中器进行升级,这在以单片机为核心的 网络型远程抄表系统集中器是很容易做到的,将写入CPU中的程序进行调 整,或配以相应的模块即可满足要求,就像操作系统的升级一样容易。特别是 基于那些功能更加强大的总线技术的远程抄表系统集中器,产品的升级和扩展 特别容易实现。· 3.运行稳定可靠,可实现实时采集数据,采集数据迅速准确 随时可读取智能表数据,也可随时查询消耗情况和相关数据,还可以通过 计算机网络与营业计算机系统有机结合起来,实现数据共享、远程自动抄表, 提供最原始的数据,绘制出用户日、月、年的负荷曲线,掌握耗能配额及各用 户耗能指数,做到整体监测、分析考核。 4.可为居民提供公平、透明的消费平台 对用户而言,由于数据准确可靠,为用户提供了一个对管理部门供应及自 己使用情况的公正的了解,同时为管理部门提供了用户用量及缴费情况的查 询,从而避免由于关系、权利、人情造成的混乱,对改善服务质量,提高管理 部门形象起到了很大作用,具有明显的社会效益。 5.可实现远程管理控制 可以随时监测用户表的运行状况,能及时发现表故障,防止偷漏电、水、 气现象。若用户消费量超过管理部门规定的金额,管理部门可切断用户表的信 号,使其停止运行。远程自动抄表系统集中器容操作性、方便性、管理理念及 消费习惯的一致性于一体,组合运用当今的多种成熟技术,为电、水、热、气 等这些特殊商品的抄收问题提供一套全新解决模式。 1.4课题研究的目的和意义 智能电表、水表、煤/燃气表、热量表等大量地出现在人们的生活中,同 7 哈尔滨理工大学工学硕十学位论文 时这些仪表的抄录工作变得越来越烦琐,工作量大,工作效率低,不仅给用户 带来不便,而且会存在漏抄、误抄、估抄的现象。随着电子技术、通信技术和 计算机技术的飞速发展,人工抄表已经逐步被自动抄表所代替。 多对象自动抄表系统集中器的通信方式十分复杂,提高集中器数据处理能 力、有效完成上下行通信是自动抄表系统AMRS(Automation Meter Reading System)目前需要解决的关键问题。 集中器是一个数据集中处理器,是多对象自动抄表系统的通信桥梁,负责 对各智能表的数据进行采集、存储和管理,及时有效地向上位机传输数据并执 行上位机发送的指令。32位ARM9微处理器处理能力强,对于较复杂的通信 与控制算法容易完成;不依赖硬件平台,有利于软件的开发、升级与移植;在 缺乏多任务调度机制的情况下,应用软件较易实现,可靠性高;速度快、硬件 性能高、低功耗、低成本,且集成了相当多的硬件资源,硬件的扩展和设计大 大简化,ARM9(¥3C2410)为工业级芯片,抗干扰能力强,能够适应运行现场 的恶劣环境。 基于ARM的多对象远程抄表系统集中器可以实现多对象远程抄表,提高 了数据处理能力,有效完成了上下行通信,可靠性强,稳定性高,结构简单。 1.5本文研究的主要内容 本论文研究的主要内容: (1)研究智能仪表的设计方案; (2)根据实际需求完成数据集中器的设计、制作。包括数据集中器软、硬 件设计,包括各模块电路的实现; (3)确定通信方式及通信标准: (4)编写CAN总线驱动程序。驱动程序包括四部分内容:CAN控制器的 初始化、接收数据、发送数据和总线异常处理。主程序调用驱动程序提供的接 口来实现数据的接收与发送; (5)编写实现多对象集中器功能的软件。利用C语言编写软件来实现数据 采集功能并对数据进行分析、处理及保存;利用VC写集中器与PC机的通信 程序,实现两者之间数据交换。 哈尔滨理工大学T学硕上学位论文 第2章多对象远程抄表系统中集中器的总体设计 2.1多对象自动抄表系统的组成 自动抄表(Automation Meter Reading,简称AMR)是指采用通信、计算机 等技术,通过集中器自动采集和处理智能表数据,然后通过现场总线CAN将 信息传至上位机,由上位机对数据进行处理、显示、存储、打印。多对象自动 抄表系统主要由智能表(水、电、气、热量表)、数据集中器和上位机组成;其 中智能表和数据集中器之间通过RS-485总线进行数据通信,数据集中器和上 位机通过现场总线CAN进行数据传输【15。171。多对象自动抄表系统的结构框图 如图2-1所示。 里 集中器I I集中器l I集中器 妻}l妻l陲l l蓁l l妻I l囊l陲}l萋l l妻l l妻l巨l I萋 图2一l多对象自动抄表系统的结构框图 Fig.2一l The Structure Framework ofMulti-object Automatic Meter Reading System 由图2—1可以看出,系统的工作原理是前端智能仪表根据实际耗能情况产 生耗能量,数据集中器对发送来的耗能量进行判断分析、接收处理、存储。 ARM(¥3C2410)芯片作为集中器微处理器,定时采集智能表的用量,并将用量 送往集中器中CAN控制器的发送缓冲区,进而通过CAN总线收发器将数据传 给上位机再进行处理。当上位机要求查询耗能情况时,通过CAN总线将命令 传达给数据集中器,数据集中器在收到命令后把存储的数据信息发送给CAN 控制器,然后传给上位机,这样就完成了一次数据交换,也可以说是完成一次 查询任务。 9 哈尔滨理工大学工学硕士学位论文 2.2智能表 智能仪表是整个系统的最前端,是脉冲信号产生的发源地,也是脉冲信号 传输的起始端,在这里产生的脉冲信号是否准确有效,直接影响到智能表控制 器的计量结果,对整个系统的可靠性来说是非常重要的。系统中的智能仪表是 在普通机械水表、煤/燃气表、电表的基础上加装传感器及单片机改造而成 的。普通机械表利用机械传动的原理来记录数据的,要想把机械运动的结果转 变为脉冲信号就必须依靠传感器技术,然后利用单片机技术将脉冲量转化为智 能表耗能数据,通过智能表的RS一485口进行数据传输。集中器端通过RS-485 总线采集几十块智能表的数据,智能表为具有RS-485输出口的电子表,带 RS一485接口的单相智能表。 1.水表、煤/燃气表 传统的水表、煤/燃气表基本上都是机械的旋翼式叶轮水表、煤/燃气表, 这对自动抄表系统带来了一定的困难,因为它很难实现与上层的数据通信,为 此需要对自来水表、煤/燃气表进行改装。对传统水表、煤/燃气表进行改装基 本上是在旋翼式叶轮水表、煤/燃气表上加装一套传感装置、单片机装置,将 旋翼式叶轮水表、煤/燃气表的叶轮转速转换成相应的脉冲量,以便于主控制 器对水表、煤/燃气表数据进行采集、存储、处理。在对旋翼式叶轮水表、煤/ 燃气表的设计改造中,方法比较多,有干弹簧、霍尔、电感等方法。干弹簧传 感器技术由于转换方便、成本低、体积小、重量轻等优点在智能水表、煤/燃 气表的开发研制中占有一席之地,结构图如图2-2所示: 图2-2传感器结构图 Fig.2-2 Sensor Structure 改装后的机械表的原理是在水表、煤/燃气表表盘指针上安装一个永磁 体,再在水表,煤/燃气表的相应位置上安装干弹簧,当机械水表或煤/燃气表 的指针受到冲击产生旋转之后,附着在上面的磁钢也跟着旋转。当磁钢旋转到 干弹簧两簧片对应位置时,簧片由于受到磁钢的磁力作用而吸合,由其转换电 10 哈尔滨理工大学丁学硕.Ij学位论文 路产生一个输出脉冲。指针每转一圈,磁钢跟着旋转一圈,干簧管吸合一次, 这样就把指针旋转一圈所代表的水量、煤/燃气量由于干弹簧的一次吸合来替 代。干弹簧吸合或断开是一个开关量信号,即脉冲信号。主控制器记录的脉冲 信号是由传感器电路产生的。那么产生的耗能数据又和脉冲数量之间有什么样 的关系昵?由传感器结构图2-2可以看出,干弹簧吸合一次代表着指针转过一 圈,指针旋转的速度越快,则干弹簧开、关的频率也就越快。由机械常识可以 知道,指针数量级别越小,旋转一圈所需要的时间就越短,代表的流量也就越 少,计算流量的精度也就越高。通常的机械表设置指针级别由10000吨一直到 0.0001吨,而机械表主叶轮则比0.0001吨还要小一个级别,磁钢旋转一圈, 说明流过的水量(煤/燃气)是该级别的10倍,即一个脉冲信号为该级别的10 倍流量,由此不难看出,在同样用水、气情况下,磁钢所在指针级别越小,干 弹簧吸合,断开就越频繁,输出的脉冲数量越多,主控制器接收、处理工作越 繁忙,需要的存储空间越大。这样不但会导致干弹簧因频繁闭合而降低寿命, 也会影响单片机处理其它工作。根据人们日常的生活习惯,也充分考虑到计量 精度的问题,本课题,水表选用将磁钢安装级别为O.01吨的指针上,干簧管 闭合一次代表流水量为0.1吨,即1个脉冲相当于0.1吨水,而谢燃气表的 磁钢则安放在0.001m3指针上。一个脉冲代表0.01m3的煤/燃气用量【1Sl。 2.电表 目前国内的单相电子式电能表大部分都是采用电能计量模块,电能计量模 块可以转换为控制器直接计数的脉冲信号,再在外围添加一些辅助模块共同组 成电能表,各种单相电子式电能表所使用的计量芯片的工作原理基本上是相似 的。美国Analog Devices公司生产的单相电能表计量芯片AD7755在我国的电 子式电能表行业中有着广泛的应用,使用AD7755设计的电能表性能优越,但 是随着自动抄表技术的发展以及电能表技术的发展,它在这些方面的应用还存 在一定的缺附悖】。为此,美国Analog Devices公司又推出了ADE7755计量芯 片,它相当于电能传感器,主要负责将用户所用电能转化为数字脉冲。 ADE7755是一种高准确度电能测量集成电路,其技术指标超过IECl036 规定的准确度要求。ADE7755的原理框图如图2-3,各个引脚功能如表2一l所 示。ADE7755只在ADC和基准源中使用模拟电路,所有其它信号处(如相乘 和滤波)都使用数字电路,这使ADE7755在恶劣的环境条件下仍能保持极高的 准确度和长期稳定性。ADE7755内部包含一个对AVDD电源引脚的监控电 路。在AVDD上升到4V之前,ADE7755一直保持在复位状态。当AVDD降 到4V以下,ADE7755也被复位,并且F1、F2和CF都没有输出。内部相位 哈尔滨理工人学工学硕十学位论文 匹配电路使电压和电流通道的相位始终是匹配的,无论通道l内的高通滤波器 (Ⅷ,L)是接通的还是断开的。内部的空载阈值特性保证ADE7755在空载时没 有潜动。 G0 GI AVDD AGND AC_/IX:DVDD DGND REF a.KinCLK_outscF So S1 REVP cF F1 F2 图2—3 ADE7755的原理框图 Fig.2-3 ADE7755 Pdndple Framework 电能表计量的基本原理由图2-3可知,该芯片从电力线的相线采样得到电 流信号以后,送入通道l进行放大,然后经过A/D转换器ADC转换成数字信 号,该信号进行相位补偿和高通滤波后进行乘法器,与通道2得到的电压取样 信号相乘,得出功率信号,再将结果进行低通滤波和数字化处理后,在Fl、 F2引脚上以负脉冲的形式输出平均实际功率的信号,CF端是该信号的16或 32倍频输出,可用于校表或和电脑接口,Fl、F2及CF端的输出波形如图2-4 所示。如果该芯片被用做功率表,那它是实际功率的输出引脚。下面是这一转 换过程的计算表达式:平均功率=平均频率=脉冲个数/积分时间;在一个积分 周期内用户消耗的电能为:电能=平均功率木积分时间=(脉冲个数/积分时间)jIc 积分时间=脉冲个数。在一定时间内对脉冲进行计数,即可测得电能值。本课 题电表设计中的ADE7755的频率输出端(CF)连接在控制器的TMR0定时/计 数器,主控制器对ADE7755输出的脉冲进行计数,并将脉冲量进行转化,转 12 哈尔滨理工大学丁学硕十学位论文 化为耗能数据,通过智能表的RS-485接口进行数据传输【20】。 图2-4FI、F2及CF端的输出波形图 Fig.20 Waveform ofFl、F2 and CF 表2-1各个引脚功能描述 引脚 编号 l 2 3 4, 19 5,6 7,8 9 10 ll 12 13, 14 15, 16 17, 18 20 21 22 23,24 Table 2一l Function Describe ofPms 引脚代号 功能描述 DVDD AC/DC AVDD Nc Vlp,Vln %,咳 RESET REF AGND SCF Sl,S0 G1,Go CLKin,CLKout l也VP DGND CF FI,F2 数字部分电源端5V,偏筹为正负5% 高通滤波器选择端应将其接到DVDD端, 则频响为(45石5)Hz 模拟部分电源端5V,偏差为正负5% 没迮接 通道1的模拟信号正、负输入端, 内置正负6V的过压保护电路 通道2的模拟信号正、负输入端, 内置正负6V的过压保护电路 芯片复位电路,低电平有效 基准电压端,应将该引脚通过O.1uF 的陶瓷电容器与AGND相接 模拟地,应通过一定方式与数字地相连 CF的倍频端,接低电平时,为16倍频, 接高时为32倍频 数字频率转换时的传递函数的选择端 选择通道1增益:1、2、8、16组合 时钟输入输出端,在这两端接3.58MHz的晶振 当检测到为负功率时,即用户向电网送电时, 该引脚被置高 数字地,为提高抗干扰性,应将模拟地与 该引脚以一点方式相接 高频脉冲输出端,常用r校表 这两端接步进电机 13 哈尔滨理工大学T学硕士学位论文 2.3数据中心 数据中心的设计为设计管理中心软件,其中管理中心软件设计较为复杂, 管理中心软件的功能是对所采集到的智能表的数据进行分析、存储以及数据维 护,它的功能设计主要包括系统管理、数据中心控制、远程抄表、数据查询、 报表管理和帮助等几个部分,数据中心就像是人的大脑一样,所有的系统命令 都是由它发出的。 2.4多对象集中器 多对象集中器安装在小区每个单元的楼道里,集中器与智能表之间呈现集 散分布状态。集中器要能够实时记录智能水、电和煤/燃气表各自的数据,并 存储于E2pROM里面。当数据中心发出抄表命令时,集中器将各自存储的数 据从E2pROM里面提取出来,通过现场总线CAN远传远方的数据中心。集中 器要完成用户数据的计算、存储和上、下层通信,是整个多对象自动抄表系统 的核心。 2.5多对象集中器与智能表之间的通信 智能表与数据集中器的距离不远,集中器安装在小区每个单元的楼道墨, 智能表与数据集中器的通信方式选择RS-485总线的方式。采用RS-485通信 方式具有比其他的现场总线(CAN、LonWorks)等的通信设备简单、控制容 易、使用成本低,并且技术基本己经成熟等优势。 2.6多对象集中器与数据中心之间的通信 数据集中器与数据中心之间的通讯采用现场总线CAN作为通讯媒介。 电、水、气量数据的CAN总线传输部分主要应用CAN控制器,控制CAN总 线上电、水、气量数据的收发,通过CAN INTERFACE将数据连接到CAN总 线上,然后通过CANmini并口CAN接口卡连接到上位机上,结构框图如2-5 所示。 14 哈尔滨理工人学1=学硕-L.学位论文 l上位机l I &¥lPLQL ’%9-2SHQ5 I l&¥l接几 I 集E器 &¥11 妾口 集l£器 I &¥1接口 集E器 图2—5集中器与上位机通信的结构框图 Fig.2-5 Concentrator and Ul’computer Communication Structure Framework 2.7本章小结 本章首先介绍了多对象自动抄表系统的总体构架,即它的网络拓扑结构; 介绍了系统中各部分的功能及在网络结构中的位置,阐述了系统的总体功能和 特点,详细阐述了智能表的设计及工作原理,并详细介绍了单相智能电表专用 芯片ADE7755的工作原理。确定多对象抄表系统中集中器上、下层通信方 式,智能表和数据集中器之问通过RS-485总线进行数据通信,数据集中器和 远方数据中心通过现场总线CAN进行数据传输。 15 哈尔滨理T大学T学硕上学位论文 第3章多对象集中器的硬件设计 在多对象自动抄表系统中,集中器是整个抄表系统的核心部分,在整个系 统中起通信桥梁的作用。多对象集中器的主要功能是完成用水量、电量、煤/ 燃气量、热量的数据存储和数据显示,还要能与上位机进行通信。在多对象抄 表系统中,集中器与智能表之间的通信采用RS-485总线的通信方式,集中器 与上位机之间通过现场总线CAN进行通信[21-23J。 3.1多对象集中器功能的确定 确定多对象集中器的功能要从实际出发,综合考虑用户要求、经济因素、 技术因素、人文因素、环境因素等特点,设计出经济实用、简单易操作的系 统。作为在智能小区中应用的多对象远程抄表系统集中器应具备的功能及特 占. J¨、‘ (1)具有正常的数据采集、存储功能 能够准确完成对水表、煤/燃气表、电表、热量表的数据进行处理、存储 工作,以便向上位机发送数据; (2)通信功能 具有接收上位机的指令,与上位机进行信息交换的功能; (3)24小时不间断工作,并有先进可靠的断电保护功能 在外部电力网线突然掉电的情况下,对数据进行保护以防丢失; (4)防盗取功能 能够准确的区分出正常信号或盗取信号,对正常信号进行记录,对盗取信 号不予理睬,提高有效性; (5)自动复位功能 程序运行的过程中,由于某原因造成程序跑飞或进入死循环,集中器应能 够自动复位,程序重新运行,提高程序运行的可靠性; (6)提供备用电原 在外网断电的情况下,要保证集中器正常工作,需提供备用电源; (7)抗干扰功能 系统在信号产生或传输过程中,由于受到外界干扰影响造成信号失真,从 而影响记录的准确性,因此具有较强抗干扰能力的系统才是可靠的【z41。 16 哈尔滨理工大学T学硕一卜学位论文 3.2多对象集中器系统结构 多对象集中器系统硬件平台的整体结构框图如图3-1所示。多对象集中器 硬件设计包括嵌入式处理器的设计选型、时钟电路、电源电路、复位电路、外 围存储器扩展、LCD、通讯接口电路等设计。微处理器是集中器的核心,数据 的采集、处理与传送都是在微处理器的控制下进行。实时时钟为集中器定时抄 表提供时间标准;电源电路为集中器系统提供稳定电源;看门狗模块的设计保 证系统的可靠运行,防止系统死机;数据存储器主要用于存储参数、变量、集 中器自身的参数,负责智能表的参数以及智能表用量等。上行通道即集中器与 上位机之间的通信线路,采用CAN现场总线进行通信;下行通道即集中器与 智能表之间的通信,采用RS一485总线进行通信嘲。 图3一l集中器硬件平台的整体结构 Fig.3—1 The Whole Structure ofConcentrator Hardware Platform 3.3微处理器选型 随着近些年来计算机技术、微电子技术的快速发展,出现了很多性能更 强、体积更小、功耗更低的微处理器。虽然8/16位微控制器仍然主导着标准 产品市场,但在一些对性能、存储要求较高的场合,其缺点已经显现出来,主 要表现为[26.271: (1)运算能力较差,难以完成较复杂的控制算法; (2)硬件平台依赖性强,不利于应用软件的开发、升级与移植; (3)针对多对象集中器这样一个较复杂的控制系统,在缺乏有力的多任务 17 哈尔滨理工大学T学硕士学位论文 调度机制的情况下,应用软件实现难度较大,且可靠性难以保证; (4)分布式多任务处理能力差,网络智能化支持难以适应长远发展需要。 因此,各大公司都将其产品重点逐渐转向32位微处理器。而 ARM(Advanced RISC Machine)正是其中的佼佼者,在32位嵌入式RISC领域 内有着广泛的影响,它已成为32位微处理器领域事业上的标准。RISC架构的 趾蝴微处理器特点: ((12))体支积持小Th、um低b(功1耗 6)、 /低删成(3本2位、)高双性指能令;集,能很好兼容8/16位器件; (3)大量使用寄存器,指令执行速度更快; (4)大多数数据操作在寄存器中完成;寻址方式灵活简单,执行效率高。 舢、外部存储控制器、LCD控制器、NAND S3C2410芯片中集成了以下部件:16KB指令Cache、16KB数据Cache、 Flash控制器、4个DMA通 道、3个UART通道、1个12C总线控制器、1个12S总线控制器、以及4个 PWM定时器和1个内部定时器、通用l/o口、实时时钟、8通道10位ADC 和触摸屏接口、USB主、USB从、2个互连的CAN接口,带有先进的验收滤 波器、SD/MMC卡接口等。其内部结构如图3-2所示: Dh,fA[31:0] 圃 囤 _H固囤 恩酮! .!竺I. 舢㈣1哑型 叫!竺l 也!!堕斗 叫塑!l 池 SDR心 广i忑一. I‘磊五‘ 网 l融z 一趼嚣’ l SPIO} S矾埘 控镧器 冈 ’ 7l竺:!::::: }s咖』型I 卜恫 S3C2410面两订 。I“№fa r踅I 圈 7甲● t器l 回 卜一竺竺 RTC CLK 12M 图3—2 S3C24lO微处理器的内部结构 Fig.3-2¥3C2410 Microprocessor Internal Structure 哈尔滨理工大学工学硕十学位论文 3.4时钟电路设计 时钟电路分为系统主时钟和RTC(Real Time Clock)。S3C2410集成了一个 具有日历功能的RTC和具有PLL(MPLL和UPLL)的芯片时钟发生器。MPLL 产生主时钟,能够使处理器工作频率最高达到203MHz。系统主时钟用于向 CPU及其它接口电路提供工作时钟,RTC为系统提供确切的时间信息。在系 统中,¥3C2410使用两个无源晶振,一个用于实时时钟,频率为32.768KHz, 另一个用于PLL电路,频率为10MHz,经PLL电路倍频后,最高可以达到 66MHz,另外还为系统实时时钟提供了备用电池,在系统掉电时为系统时钟供 电,时钟电路如图3-3所示【281: DI 图3-3系统时钟电路 Fig.3-3 System Clock Circuit ¥3C2410的时钟控制信号如下: (1)PLLCAP:如果使用PLL倍频电路,在该引脚和地之间接820pF的环 路滤波陶瓷电容。在实际系统中,一般应使用PLL电路,因此电容应连接。 (2)OM[1:0]:在生产时设置S3C2410的测试模式,在工作时确定 nGCS0的总线宽度,在系统中OM[1:0]为00,表示nGCS0总线宽度为8bit; OM[1:O]为0l,表示nGCS0总线宽度为16bit;OM[1:0]为10,表示nGCS0 总线宽度为32bit;OM[1:0]为ll,表示测试模式。 19 哈尔滨理工大学工学硕十学位论文 (3) OM[3:2]:确定时钟模式, 其模式为00:Crystal(连 XTAL0,EXTAL0),PLL(锁相环);01:连EXTCLK,PLL(锁相环)ON;10, 11系统测试模式。OM[3:2]为00,表示接系统时钟,且PLL打开。 (4)EXTCLK:当OM[3:2]选择外部时钟时的外部时钟输入信号线,不 用时接高(3.3V)。 3.5复位电路设计 在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键 复位功能。复位电路可由简单的RC电路构成,成本较低,但抗干扰能力较 差。另外也可使用其他的相对较复杂但功能更完善的专用电路。由于ARM芯 片的高速、低功耗、低工作电压导致其噪声容限低,对电源的纹波、瞬态响应 性能、时钟源的稳定性、电源监控可靠性等诸多方面也提出更高的要求,本多 对象集中器采用的是由系统复位芯片IMP706构成的电路,IMP706监控电路 集上电复位、看门狗定时器、电源电压监控于一体,是解决嵌入式系统设计中 抗干扰问题的很好的一种芯片选择㈣。系统复位电路如图3—4所示: 图3-4系统复位电路 Fig.3—4 System Reset Circuit 3.6电源电路设计 电源电路是多对象集中器硬件电路设计中关键的一个地方,关系着整个系 统的运行稳定性和抗干扰能力,在电源电路设计中,主要考虑以下的问题[30l: (1)满足整个电路电压供电要求; (2)保证电源的稳定性和抗干扰性。 ¥3C2410微处理器均要使用两组电源,I/O口供电电源为3.3V,内核及片 内外设供电电源为1.8V,所以需要使用5V和3.3V及1.8V的直流稳压电源。 哈尔滨理工大学工学硕.1:学位论文 其中,¥3C2410及大部分外围器件需3.3V电源,5V电源作为系统扩展用。为 提高系统电源电路的供电质量和系统供电安全,加入了电源滤波和保护电路。 首先由CZLl电源接口输入9V直流电源,二极管DLl用来防止电源反接,经 过CLl和CL2滤波,然后通过稳压芯片将电压稳压到5V。经过稳压电路之后 再使用LDO芯片稳定输出到3.3V和1.8V。电路原理图如图3-5所示: IMlll彻3.3 f 图3—5系统电源电路 Fig.3-5 System Power Circuit 其中的LDO芯片分别是LMlll7M3-3.3和LMlll7M3一1.8,其特点是输 出电流大,输出的电压精度高,稳定性好。LMlll7系列LDO芯片输出电流可 达800mA,输出电压精度在士1%以内,还有电流限制和热保护功能。 其中的LDO芯片分别是LMI l 17M3—3.3和LMl 117M3一1.8,其特点是输 出电流大,输出的电压精度高,稳定性好。LMlll7系列LDO芯片输出电流可 达800mA,输出电压精度在士1%以内,还有电流限制和热保护功能。 3.7后备电源电路设计 在平时市电供电的情况下,采用市电变压供电,在市电停电的情况下,为 了保证多对象集中器的正常工作,特设计了后备电源电路。电路原理图如图3— 6所示。低压差稳压器LM2931T是一款电池稳压器,用它作为失电备份非常 方便。电路在正常供电时,输入经D3直接输出,同时还经Dl与Rl对备份电 池进行涓流充电,LM2931T的2脚处于高电平而关断输出;当线路输入失电 时,LM2931T的2脚将为低电平,输出经D4对负载稳压续电。备份电路能够 2l 哈尔滨理工大学T学硕一L-学位论文 适应较宽的电压范围,调节R4可获得合适的供电输出,电路中D1-D4为隔离 二极管【3l】。 图3-6后备电源电路 Fig.3-6 Reserve Power Circuit 3.8存储器电路设计 ROM、在S基RA于MA和RMS核D洲的等嵌;入式 而应且用不系同统类包型含的多器种件类要型的 求存 不储同器的件速,度如、Fl数as据h、宽 度等,这些都是由存储管理控制器来进行协调处理的。在基于¥3C2410处理器 的嵌入式系统中,也是通过存储控制器为片外存储器访问提供必要的控制信 号,管理片外存储部件的。如图3-7为S3C2410存储空间映射分配图。图3— 7a)是nGCSO片选的Nor Flash启动模式下的存储分配图;图3—7b)是NAND FLASH启动模式下的存储分配图;SFR Area为特殊寄存器地址空间,nGCS0 片选的空间在不同的启动模式下,映射的器件不一样[32,42】。由图3-7可知: (1)在NAND FLASH启动模式下,内部的4K Bytes BootSRAM被映射到 nGCS0片选的空间。 (2)Nor Flash启动模式(非NAND FLASH启动模式)下,与nGCS0相连 的外部存储器Nor Flash就被映射到nGCS0片选的空间。 系统的的存储空间分为8组(Bank),每组的大小是128MB,共1GB。 Bank0到Bank5的开始地址是固定的,用于ROM或SRAM。Bank6和Bank7 用于ROM、SRAM或SDRAM,这两组可编程且大小相同。Bank7的开始地 址是Bank6的结束地址,灵活可变。所有内存块的访问周期都可编程。 哈尔滨理工大学-T学硕士学位论文 Not Used SFR Area Not Used OX3800 ooOO OX3000_0000 0X2800 OOOO 0X2000 O000 OXl800 0000 OXl000 OOOO OX0800 0000 OXOOOO 0000 OM[1:O]=卸1,lO SDRAM (BANK7,nGCS7) SDRAM (BANK6,nGCS6) SRoM (BANK5.nGCS5) SR()M (BANK4,nGCS4) SROM (BANK3,nGCS3) SROM (BANK2,nGCS2) SR伽 (BANKl,nGCSI) I BootSRAM l 【 (垒基旦Y皇宝兰2 I OM[1:O]—oo a)Not using NAND flash for booting ROM b)Using NAND flash for booting ROM 图3—7 S3C2410存储区地址映射 Fig.3-7 S3C2410 Storage Area Address Mapping ¥3C2410采用nGCS[7:0]8个通用片选信号选择这些组。¥3C2410支持从 NAND FLASH启动,NAND FLASH具有容量大,比NOR Flash价格低等特 点。系统采用两种不同的FLASH和SDRAM组成外部程序存储器扩展电路和 数据存储器扩展电路,可以获得非常高的性价比。 ¥3C2410具有三种启动方式,可以通过OM[1:0]管脚进行选择: (1)OM[1:O]=00,处理器从NAND FLASH启动; (2)0M[1:O]=0l,处理器从16位宽的ROM启动; (3)OM[1:0]=10,处理器从32位宽的ROM启动; 外接存储器分为8位、16位、32位存储器。8位存储器速度较慢,但价位 低。32位存储器速度最快,但价位最高;16位存储器性价比较为理想,因此 目前32位的ARM系列CPU一般都选用16位存储器作为片外存储器。 FLASH的数据总线宽度必须在系统启动前确定,可以通过CPU的 OM[1:O]引脚来确定,OM[1:O]的数值决定了FLASH的数据总线宽度。本文 所采用的FLASH数据总线为16,OM[1:0]-Ol。32位的CPU数据存储格式 为每个字四个字节,如果字的四个字节地址由高到低则为为大端格式,反之为 小端数据格式。本文选择小端工作模式,将ENDIAN引脚设置为O实现的。 哈尔滨理工人学工学硕.f:学位论文 而其他的Bank的配置,以及读写周期等信息是靠Bank0内部的代码配置相应 的寄存器来实现的。由于CPU是32位的,FLASH是16位的,故硬件连接时 CPU地址线的最低位必须舍弃,从倒数第2根连上FLASH的最低位,其他引 脚依次即可,FLASH存储器的扩展图如图3-8所示。 图3-8 FLASH存储器扩展 SDRAM存储器的扩展方式与FLASH存储器的扩展方式基本相似, SDRAM存储器的数据总线宽度可以在系统启动后通过配置寄存控制器决定。 由于CPU是32位的,SDRAM存储器是16位的,故硬件连接时CPU地址线 的最低位必须舍弃,从倒数第2根连上SDRAM存储器的最低位,其他引脚依 次即可。图3-9是SDRAM存储器的扩展电路原理图,由于SDRAM存储器是 同步动态RAM,所以与FLASH存储器的扩展电路原理图相比,多了一些用于 同步控制的逻辑控制信号。 哈尔滨理工大学工学硕上学位论文 图3-9 SDRAM存储器扩展 Fig.3-9 SDRAM Memory Expansion 3.9 LCD接口电路和电压驱动电路设计 在本多对象抄表集中器中,显示电路用于实时显示各计量表的示值。由于 LCD液晶显示器具有功耗低、体积小、寿命长、价格低等优点,目前在智能仪 器仪表和低功耗电子产品中被广泛应用。¥3C2410内置有LCD控制器,可以 支持液晶屏显示,它具有将显示缓存(在系统存储器中)的图像数据传输到外部 驱动电路的逻辑功能。83C2410内置LCD控制器采用时基的抖动逻辑和帧速 度控制方法,可以支持规格为每像素2位或每像素4位级灰度的黑白LCD,也 可以支持每像素8位的彩色LCD屏。LCD控制器可以通过编程支持不同LCD 屏的要求,例如:行和列像素数,数据总线宽度,接口时序和刷新频率等。 LCD控制器的基本结构包括REGBANK,LCDDMA,VIDPRCS和 TIMEGEN四大部分【331。REGBANK有18个控制寄存器,通过对它们的配 置,可以完成对整个LCD控制器的控制。LCDDMA是LCD控制器专用 DMA,在没有CPU介入的情况下完成自动传输帧存储器的数据到LCD驱动 器进行显示。VIDPRCS负责从LCDDMA接受数据,并在进行适当的数据格 式转换之后通过VD[7:0]数据线把数据传送到LCD控制器。在TIMEGEN中 包含了可编程逻辑器件,针对不同LCD接口、速率和时钟的不同要求,可生 哈尔滨理工大学工学硕十学位论文 成不同的VFRAME、VLINE、VCLK和VM等外部控制信号。 (1)VFRAME:LCD控制器和LCD驱动器之间的帧同步信号,该信号通 知LCD屏的新的一帧开始了,LCD控制器在一个完整帧显示完成后立即插入 一个VFRAME信号,开始新一帧的显示; (2)VLINE:LCD控制器和LCD驱动器之间的线同步脉冲信号,该信号 用于LCD驱动器将水平线(行)移位寄存器的内容传送给LCD屏显示。LCD控 制器在整个水平线(行)数据移入LCD驱动器后,插入一个VLINE信号; (3)VCLK:LCD控制器和LCD驱动器之间的像素时钟信号,由LCD控 制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动 器采样; (4)VM:LCD驱动器的AC信号。VM信号被LCD驱动器用于改变行和 列的电压极性,从而控制像素点的显示或熄灭。VM信号可以与每个帧同步, 也可以与可变数量的VLINE信号同步; (5)VD[3:O]:LCD像素数据输出端口,双扫描时的低4位数据输入; (6)VD[7:4]:LCD像素数据输出端口,双扫描时的高4位数据输入: LCD液晶显示接口电路和电压驱动电路如图3一lO所示: 图3—10 LCD液晶显示接口电路和电压驱动电路 Fig.3—10 LCD Display Interface Circuit and Voltage Drive Circuit 哈尔滨理工大学下学硕上学位论文 3.10 RS一485通讯电路设计 RS一485接口芯片的主要功能是将来自微处理器的发送信号TX通过“驱 动器"转换成通讯网络中的差分信号,也可以将网络中的差分信号通过“接收 器’’转换成被微处理器接收的RX信号∽351。 作为一种常用的通讯接口器件,许多半导体公司都生产RS-485芯片,如 Sipex、Maxim、TI、Intersil等。Maxim公司作为一个生产接口器件的国际厂 商,它的许多型号RS一485芯片都可以与全球其他半导体厂商的芯片直接代换 使用,引脚完全兼容,且具有非常良好的性价比。 为了能够和微处理器¥3C2410的+3.3V电平匹配,保障系统能够可靠工 作,收发器选用了同样是+3.3V供电的MAX485,其特点如下: (1)低功耗半双工收发器,完全符合RS一485串行协议的电气规范,数据 传输速 (2率)一可M高12达V1的0M共bp模s(输带入负载 电)压;范围; (3)允许在同一行串行总线上连接32个收发器; ((45))与空工载业时标输准出75电17压6管为脚叶配3置.兼3容V,;即使在连接了54欧姆负载的条件 下,驱动器仍可保证输出电压大于1.5V; (6)接收器具有故障自动保护特性,可以使输出在输入悬空时为高电平状 态; ¥3C241 0内部本身umH(通用异步收发器)单元提供两个独立的异步串行 I/O端口,每个都可以在中断和DMA两种模式下工作。它们支持的最高波特 率为1 15.2Kbps。每个UART以通道包含2个16位FIFO分别提供给接收和发 送。¥3C2410的UART可以进行以下参数的设置:可编程的波特率,红外收/ 发模式,l或2个停止位,5位、6位、7位或8位数据宽度和奇偶位校验。每 个UART包含一个波特率产生器、发送器、接收器和控制单元。波特率发生器 以MCLK作为时钟源。发送器和接收器包含16字节的FIFO和移位寄存器。 要被发送的数据,首先被写入FIFO,然后拷贝到发送移位寄存器。然后它从 (鼢)移位输入到移位寄存器,然后拷贝到FIFO中。 数据输出端口(TXDn)依次被移位输出。被接收的数据也同样从数据接收端口 RS一485标准采用平衡式发送,差分式接收的数据收发器来驱动总线,各 节点之间的通信是通过一对双绞线作为传输介质。其中一线定义为A,另一线 哈尔滨理工大学T学硕上学位论文 定义为B,如图3-11为差分信号的输~输出端。如果A比B电压高,为逻辑 图3一ll差分信号的输入/输出端 Fig.3—1 1 Signal Input/Output 高电平,如果B比A电压高,则为逻辑低电平。RS-485标准是为弥补RS-232 通信距离短、速率低等缺点而产生的。与RS-232接口相比,RS-485总线的传 输距离更长、抗干扰能力也更强,具有以下一些特点: (1)接口采用平衡驱动器和差分接收器,抗共模干扰能力强,即抗噪声干 扰性好; (2)接收器的输入灵敏度为200mV,即在接收端VA-VB>+200mV时,输 出为逻辑“0”,VA-VB<一200mV时,输出为逻辑“l修; (3)数据最高传输速率为10Mbps,最大传输距离标准值为4000英尺; (4)在节点数为32个,配置了120欧姆的终端电阻的情况下,驱动器至 少还能输出1.5V电压(终端电阻的大小与所用双绞线的参数有关); (5)具有多站能力,即总线上允许连接多个收发器,可建立设备网络。 RS一485能够进行远距离传输的主要原因在于它使用了平衡线路。每个信 号都有专用的导线对,其中一根导线上的电压等于另一根导线上的电压取反。 接收器对这些电压之间的压差做出反应。目前多对象远程抄表集中器中常使用 的485接口电路如图3-12所示。 图3—12485接口电路 Fig.3—12 485 Interface Circuit 28 哈尔滨理工大学T学硕jIj学位论文 3.1 1 CAN控制器 ¥3C2410包含2个CAN控制器,可同时支持多个CAN总线的操作。 ¥3C2410的CAN控制器有以下几个特性闭: (1)单个总线上的数据传输速率高达1Mb/s; (2)32位寄存器和RAM访问; (3)兼容CAN2.0B(A)和IS011898一l规范: (4)全局验收滤波器可以识别所有的11位或29位标识符; (5)验收滤波器为选择的标准标识符提供了FullCAN-style自动接收。 ¥3C2410的CAN总线引脚描述:RX2、RXl,串行输入,来自CAN收发 器;TX2、TXl,串行输出,输出到CAN收发器。CAN控制器和验收过滤器 占用部分VPB solt空间,CAN控制器的存储器映射地址范围见表3-1所示: 表3-1 CAN模块的存储器映射 Table 3-1 Memory Map ofCAN Module 地址范围 E003 8000-87FF E003 C000-C017 E004 0000-000B E004 4000-405F E004 8000—805F 用途 验收过滤器RAM (2048字节) 验收过滤器寄存器 中央CAN寄存器 CAN控制器l寄存器 CAN控制器2寄存器 优龙FS2410开发板配送有2个CAN INTE腻E,CAN接口电路如图 3-13所示,其中每个都有一个高速CAN收发器TJAl040,TJAl040是控制器 区域网络(CAN)协议控制器和物理总线之间的接口,是一种标准的高速CAN 收发器。 TJAl040可以为总线提供差动发送性能,为CAN控制器提供差动接收性 能,TJAl040具有如下特性: (1)与IS011898标准完全兼容,速度可达1Mbps; (2)极低的电磁辐射(EME); (3)最多可以连接110个节点,没有供电的节点不干扰总线; (4)对电源和地的短路保护功能; (5)发送数据(TXD)控制超时显性功能。 哈尔滨理工大学T学硕上学位论文 图3一13CAN接口电路 Fig.3—1 3 CAN Interface Circuit TJAl040具有如下的优势: (1)增加了防失效功能和提高了无源特性; (2)输入电平与3.3V和5V器件兼容; (3)简单化设计减少了整个系统的成本; (4)低反向电流使得节点未供电时不影响网络; (5)具有宽共模范围的差动接收器,抗电磁干扰(EMI)能力极强; (6)适合用于部分供电网络中节点掉电的情况。 TJAl040高速CAN收发器主要由TXD超时显性控制、收发器、热保护等 组成,输入是CAN控制器的输入输出端口,输出的是CAN总线CANH和 CANL信号线,TJAl040的功能框图如图3-14所示。 图3—14 TJAl040功能框图 Fig.3—14 TJAl040 Function Framechart 哈尔滨理T大学工学硕士学位论文 优龙FS2410开发板配送有2个CAN INTERFACE,其中每个有两个 TLPll3。TLPll3是隔离线接收器,原理结构如图3-15所示。TLPll3内部有 一个发光二极管,该管连接在一个具有高增益高感光度的集电极开路肖特基晶 体管上。TLPl 13主要特性如下: (1)开启输入电流:IF=lOMA; (2)开关速度:10MBd; (3)TTL/LSTrL兼容:VCC=5V;电压:2500Vrms。 ]津1I『F亚’ 图3一15 TLPll3内部电路 Fig.3—15 TLPl 13 Internal Circuit 3.12本章小结 本章首先介绍了多对象集中抄表系统集中器硬件结构,集中器硬件主要由 时钟电路、复位电路、电源电路、存储电路、通讯电路等组成;然后具体说明 了各部分电路设计思想,介绍了使用芯片的主要特性,给出了每部分电路的电 路图。详细介绍了CAN INTERFACE内部的高速CAN收发器TJAl040及 TLPIl3,并给出CAN收发器TJAl040及TLPll3内部电路。 哈尔滨理T大学丁学硕上学位论文 第4章多对象集中器的软件设计 本多对象集中器应用在智能小区中,各住户以集散方式分布在小区内,针 对于住户的水表、煤/燃气表、电表所建立起的集抄系统采用的就是集散型测 控系统的形式。物业管理中心的PC机作为主控机(上位机)可以按照要求设定 抄存的项目,抄收起始时间和时间间隔,定时、自动抄收存储在多对象集中器 中的数据,也可以生成数据文件供其它系统使用。多对象集中器作为下位机接 收上位机发送来的命令,并根据命令向上位机传送所需的数据信息和工作状 态。多对象集中器一方面直接面对智能仪表,有利于及时掌握测量现场情况; 一方面直接面对上位机,随时按照上位机指令传递信息。因此,它是联系用户 家中现场和管理中心之间的纽带。由此可见,实现远程抄表的功能,不仅要解 决智能表的数据采集问题,更要解决如何完成数据传递的问题[37,33】。 4.1软件设计的基本原则 为了满足多对象远程抄表系统集中器的设计要求,应根据以下基本原则进 行软件的编制: 1.易理解性和易维护性 这通常是指软件系统容易被发现和纠正错误,容易修改和补充。由于生产 过程自动化程度越来越高,测控系统的结构也日趋复杂,设计人员很难在短时 间内就能对整个系统理解得准确无误,软件的设计与调试也不可能一挥而就, 有些问题是在运行过程中逐步暴露出来的,这就要求编制的软件既要容易理 解,在发现问题时又要便于修改和完善。在软件的设计方法中,结构化程序设 计就是最好的设计方法之一,这种设计方法是由整体到局部,然后再由局部到 细节;先考虑整个多对象集中器系统所要实现的功能,确定整体目标,然后把 这个目标逐步分解成一个个任务,任务又可以进一步分解成若干个子任务,这 样逐层细分、逐个实现。在此过程中可能会有一些问题逐步暴露,这就要求软 件易被修改,那么,结构化设计就是最好的设计方法。 多对象远程抄表系统集中器的软,牛设计就是采用上述模块化设计方法。这 样,不但使得设计目标明确、思路清晰,而且在检错和系统联机调试时也较为 方便。如果每个子程序都能单独运行正确,那么,向搭积木一样,把它们联合 起来的时候,只要安排恰当,一般来说不会有太大的问题。即使有问题也可以 32 哈尔滨理工人学工学硕1:学位论文 根据问题的种类和现象来进一步判断是哪一部分出了问题,很容易找出故障之 所在和故障的原因。同时,采用模块化结构程序的设计方法,也为系统功能的 扩充和移植提供了很大的方便。 2.可测试性 集中器系统软件的可测试性有两方面含义:其一是较容易制定出测准则, 并据此对软件进行测试;其二是软件设计工作完成后,首先在模拟环境下运 行,经过静态分析和动态仿真运行,证明准确无误后才可投入实际使用。 3.准确性 这对多对象抄表系统集中器具有重要意义,对远程抄表系统而言就更具有 实际意义,其结果的准确程度直接关系到千家万户的切身利益。因此,在算法 选择和位数选择方面要满足实际要求、运算结果要符合国家相关的技术标准。 4.实时性 它是监测集中器的普遍要求,即要求集中器及时响应外部事件的发生,并 及时给出处理结果。近年来,由于硬件高度集成化和速度的提高,配合相应软 件,集中器实时性的要求较容易得到满足,特别是对于用C语言编制的软件。 5.可靠性 它是多对象集中器软件最重要的指标之一,该要求有两层意义:第一是运 行参数环境改变时,软件能可靠地运行并能给出jF确的结果,即要求软件具有 自适应性;第二是在环境恶劣、干扰严重的情况下,软件必须系统保证也能可 靠地运行,这对系统的整体可靠运行尤为重要。 根据以上软件设计的基本原则,在多对象集中器设计的硬件电路基础上, 结合本课题所要完成的任务和要求,分别进行多对象远程抄表系统集中器相关 子程序的软件设计。 4.2多对象集中器各模块的软件设计 在多对象集中器中,一方面要接收上位机发来的命令进行处理,或向存储 器读取各种参数,或向存储器写入各种参数,另一方面还要根据情况把命令继 续向其下一级智能表转发,然后再等待接收智能表发来的应答命令,当智能表 应答成功时,集中器就可以向上位机发应答命令。 集中器的软件设计主要包括集中器主程序的设计、集中器接受命令子程序 的设计、集中器向智能表发命令子程序软件的设计、集中器向上位机应答子程 序的设计1391。 33 哈尔滨理工火学工学硕.}:学位论文 4.2.1多对象集中器主程序的设计 在多对象远程抄表系统中,集中器的主要作用是通信,它是智能表和上位 机之间进行信息交换的桥梁和纽带。因此,可以在多对象集中器的主程序中使 用串口查询方式。在集中器主程序中,当上位机发命令时,集中器的串口接收 到数据,此时线状态寄存器将标志位置高。当在主程序中,检测到这个标志 时,调用处理子程序。这时主程序处于等待状态,当处理成功之后,调用集中 器向上位机应答子程序;当集中器将上位机发来的命令向智能表转发时,则调 用集中器向智能表发命令子程序。集中器主程序流程设计如图争1所示: 初始化器件 l 初始化寄存器, 读入通信参数 l 复位看门狗 霪: 弋7 根据通信协议进 行数据接受处理 ● ● Y公回传上位机 ● 图4-1集中器主程序流程图 Fig.4-1 Concentrator Main Program Flowchart 哈尔滨理工大学工学硕一}:学位论文 4.2.2多对象集中器接收命令子程序的设计 在集中器这个子系统中,根据任务要求,集中器中存在两个串口,故采用 不同的串口进行通讯。 由于集中器接收智能表应答的流程设计和集中器接收上位机命令的流程相 似,故它们是交叉进行处理的。所以,本文仅以集中器接收上位机发命令子程 序的流程设计为例,说明集中器中断接收上位机命令的工作流程。集中器接收 上位机命令的工作流程图如图4-2所示,在图4-2中,只描述了集中器接收上 位机命令的流程。集中器接收成功时也要做不同的成功标志,在等待接收中, 以便查询区分。 图4-2集中器接受上位机命令程序流程图 Fig.4-2 Concentrator Accept PC Command Procedure Flowchart 集中器处理命令子程序是在集中器接收上位机命令成功时,做处理命令工 作的。因为在接收子程序中己经对接收命令的一部分进行了校验,所以,在集 中器处理命令子程序中,只需验证一下校验码即可。当上位机所发命令为设置 参数命令时,除了要把这些数设置到存储器中外,还要根据情况进一步向智能 表转发这个命令,即调用向智能表发命令子程序;当上位机要抄取能耗或参数 哈尔滨理T大学工学硕士学位论文 等时,要调用向智能表发命令子程序,注意这时要设置好相应的处理完标志。 4.2.3多对象集中器向智能表发命令子程序的设计 当多对象集中器接收上位机命令处理完后,如需进一步向智能表转发该命 令,此时,就可以把上位机发来的命令进一步向智能表转发。这时要先把集中 器发送智能表使能端打开,然后把上位机发来的命令的各个字节发出,其流程 图如图4—3所示。 图4—3集中器向智能表发送命令程序流程图 Fig.4—3 Concentrator Send Command Procedure Flowchart 4.2.4多对象集中器向上位机应答子程序的设计 当多对象集中器接收智能表应答成功或者不需要进一步向智能表转发上位 机命令时,这时集中器就可以向上位机作应答了。首先,要把集中器发送上位 哈尔滨理T大学工学硕士学位论文 机使能端打开,然后再把集中器向上位机应答命令的各个字节发出。集中器向 上位机应答的形式与集中器向智能表转发命令的流程相似,只不过在进行“设 置能耗或参数”时应答命令的数据缓冲区中的数据个数要置零。 4.3多对象集中器通信的实现 4.3.1集中器上行通信协议 集中器上行通信是指集中器与PC机之间的通信,上行通信是CAN总线 通信,CAN总线协议依据国际标准化组织/开放系统互连(International Standardi-zation Organization/Open System Interconnection,ISO/OSI)参考模型, CAN的ISO/OSI参考模型的层结构如图4-4所示。下面对CAN协议的媒体访 问控制子层的一些概念和特征做如下说明即l: (1)报文(Message),总线上的报文以不同报文格式发送,但长度受到限 制。当总线空闲时,任何一个网络上的节点都可以发送报文。 (2)信息路由(Information Routing),在CAN中,节点不使用任何关于系 统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧 信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可 以直接在CAN中增加节点。 (3)标识符(Identifier),要传送的报文有特征标识符(是数据帧和远程帧的 一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广 播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收 这帧信息。 (4)数据一致性,应确保报文在CAN里同时被所有节点接收或同时不接 收,这是配合错误处理和再同步功能实现的。 (5)位传输速率,不同的CAN系统速度不同,但在一个给定的系统里, 位传输速率是唯一的,并且是固定的。 (6)优先权,由发送数据的报文中的标识符决定报文占用总线的优先权。 标识符越小,优先权越高。 (7)远程数据请求(Remote Data Request),通过发送远程帧,需要数据的 节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程 帧由相同的标识符命名。 (8)仲裁(Arbitration),只要总线空闲,任何节点都可以向总线发送报 37 哈尔滨理工大学T学硕上学位论文 文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通 过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均 不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程 帧。 (9)总线状态,总线有“显性’’和“隐性”两个状态,“显性"对应逻辑 “0’’,“隐性”对应逻辑“l"。CAN总线采用二进制不归零(NRZ)编码方式, 所以总线上不是“0”,就是“1”。 (10)故障界定(Confinement),CAN节点能区分瞬时扰动引起的故障和永 久性故障。故障节点会被关闭。 (11)应答接收,节点对正确接收的报文给出应答,对不一致报文进行标 记。 数据链路层 逻辑链路控制子层LLC 验收滤波器 过载通知 恢复管理 介质访问控制子层MAC 数据包装/解包 帧编码(填充,消除 填充) 介质访问管理 错误榆测 错误标定 应答 串行化/解串行化 物理层 位编码/解码 位定时 同步 监督器 故障界定 (MAC—UIE) 总线故障管理 (PLS—U崛) 驱动器/接收器特征 图4-4 CAN的ISo/OSI参考模型的层结构 Fig.4—4 Layer Framework of CAN ISO/OSI Reference Model 1.CAN总线协议内容 CAN总线的物理层是将ECU连接至总线的驱动电路。ECU的总数将受限 于总线上的电气负荷。物理层定义了物理数据在总线上各节点间的传输过程, 主要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标 哈尔滨理工大学工学硕上学位论文 准。BOSCH CAN基本上没有对物理层进行定义,但基于CAN的ISO标准对 物理层进行了定义。设计一个CAN系统时,物理层具有很大的选择余地,但 必须保证CAN协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争 时,具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持 CAN总线中隐性位和显性位的状态特征。在没有发送显性位时,总线处于隐 性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性 位覆盖隐性位,使总线处于显性状态。在此基础上,物理层主要取决于传输速 度的要求。 从物理结构上看,在CAN中,物理层从结构上可分为三层:分别是物理层 信令(Physical Layer Signaling,PLS)、物理介质附件(Physical Media Attachment, PMA)层和介质从属接1:3(Media Dependent Inter-face,MDI)层。其中PLS连同 数据链路层功能由CAN控制器完成,PMA层功能由CAN收发器完成,MDI 层定义了电缆和连接器的特性。目前也有支持CAN的微处理器内部集成了 CAN控制器和收发器电路,如MC68HC908GZl6。PMA和MDI两层有很多不 同的国际或国家或行业标准,也可自行定义,比较流行的是IS011898定义的 高速CAN发j羞/接收器标准。 理论上,CAN总线上的节点数几乎不受限制,可达到2000个,实际上受 电气特性的限制,最多只能接100多个节点。CAN的数据链路层是其核心内 容,其中逻辑链路控制(Logical Link control,LLC)完成过滤、过载通知和管理 恢复等功能,媒体访问控制(Medium Access Control,MAC)子层完成数据打包/ 解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串并转换等功 能。这些功能都是围绕信息帧传送过程展开的。在CAN2.0B的版本协议中有 两种不同的帧格式,不同之处为标识符域的长度不同,含有11位标识符的帧 称之为标准帧,而含有29位标识符的帧称为扩展帧。如CANl.2版本协议所 描述,两个版本的标准数据帧格式和远程帧格式分别是等效的,而扩展格式是 CAN2.0B协议新增加的特性。为使控制器设计相对简单,并不要求执行完全 的扩展格式,对于新型控制器而言,必须不加任何限制的支持标准格式。但无 论是哪种帧格式,在报文传输时都有以下四种不同类型的帧: (1)数据帧(Data):据帧将数据从发送器传输到接收器; (2)远程帧(Remote):总线单元发出远程帧,请求发送具有同一标识符的 数据帧; (3)错误帧(Error):任何单元检测到总线错误就发出错误帧; (4)过载帧(Overload):过载帧用在相邻数据帧或远程帧之间提供附加的 39 哈尔滨理T大学工学硕士学位论文 延时。 2.CAN协议的数据帧结构 CAN报文的数据帧由7个不同的位场组成,即帧起始标志位、仲裁场、 控制场、数据场、CRC检查场、ACK应答场和帧结束标志位。数据场长度可 为零。CAN2.0A和CAN2.0B的数据帧格式有所不同。CAN2.0A数据帧的组 成如图4-5所示。在CAN2.0B中存在两种不同的帧格式,其主要区别在于标 识符的长度,具有1l位标识符的帧称为标准帧,而包括29位标识符的帧称为 扩展帧,其格式如图4-5所示。 标准帧 "91"----仲裁场 —- , 坎捌{Z--。 数据场 11位标识符 DL 扩展帧 ● 仲裁场 , J·bk糊4£■. 11位标识符 18位标识符 图4-5标准帧和扩展帧 Fig.4-5 Standard Frame and Extend Frame 4.3.2集中器下行通信协议 集中器下行通信协议指集中器与智能表之间的通信协议。数据集中器与智 能表之间的通信协议采用主一从结构的半双工通信方式,集中器为主站,智能 表为从站。每个计费终端都有自己的地址编码,通信链路的建立与解除均由主 站发出的信息帧来控制【4l】。 1.集中器向智能表发出的发送帧 (1)68H:是帧的起始位 (2)AAlA2A3AA5:是地址域;其中~表示水、电、气表的地址编码, 哈尔滨理T大学工学硕十学位论文 其中舢若设置为OOH,则表示是对相应的集中器下的水、电、煤气三表数据 同时进行抄收。Al,A2表示用户的地址编码,A3,~表示数据集中器的地址 编码,若A3A4--9999H时,表示对集中器辖区内的所有表计进行数据抄收。A5 是空置的,把A5用AAH补足,即A5=AAH。比如:数据集中器的地址编码为 0001H,即A3A4=O001H;用户的地址为0010H,即AiA2--0010H舻1lH, 表示选择水表;A俨01H,表示选择电表;~=10H,表示选择煤气表; Ao=00H,表示选择所有表; (3)C:控制码C=11H:代表抄表命令;C=33H:断电处理; (4)L:表数据域DATA的字节长度;集中器发送帧的字节数为2,L=2; (5)DATA:数据域;在集中器的发送帧中表示集中器的地址,比如集中 器的地址为0001H,则DAl^A=000lH; (6)CS:是奇偶校验位,设计中使用偶校验; (7)16H:是结束符。 2.智能表向数据集中器发出的应答帧 若智能表接收到的地址码是自己的地址,C=I 1H,该命令是抄表命令,则 智能表发出的应答帧的信息帧格式如下: (1)68H:是帧的起始位; (2)AOAlA2A3A4A5-地址域;在应答帧中,地址域里面放的就是目标 地址,即数据集中器的地址码,在应答帧中,只使用了A0,A1两位来表示数 据集中器的地址,A2,A3,A4,A5,4个字节都由AAH来补充; (3)C:控制码C=81H; (4)L:表示数据域DATA的字节长度;由于数据域中代表的是水、电、 气表的数据,所以是3个字节,即L-3; (5)DATA:数据域;在智能表的发送的应答帧中表示水、电、气表的当 前数据。若集中器的发送帧中的A0=11H,则表示发送的是水表的数据, A0=01H,则表示发送的是电表的数据,A0=10H,表示发送的是气表的数据; (6)CS:是奇偶校验位,设计中使用偶校验; (7)16H:是结束符。 41 哈尔滨理T大学T学硕士学位论文 4.3.3 CAN驱动程序设计 CAN总线驱动程序包括四部分内容:CAN控制器初始化、接收数据、发 送数据和总线异常处理。主程序只需通过调用驱动程序提供的接口来实现数据 的接收和发送。CAN驱动程序最首要的任务就是根据要实现的功能,初始化 好CAN控制器的各种寄存器,包括CAN的模式寄存器、中断寄存器、验收代 码寄存器、总线定时器、时间分频器等。其中CAN的波特率设为250Kbps, 数据的最大传输距离为270m。CAN总线初始化流程图如图4-6所示。 l l 硬件使能 I CAN控制器 上 I 软件使能 I CAN控制器 图4—6 CAN总线初始化框图 Fig.4-6 Framwork of CAN Bus Initialization 下面简要讲述一下CAN驱动程序的关键函数。 42 哈尔滨理工大学工学硕士学位论文 1.CAN驱动程序的初始化函数 hat can_init(void) { int result: result=register_chrdev(MAJOR_NR,DEVICE—NAME,¥3C241 0_can_fops); if(result<0) { Printk(“<0>”DEVICE_NAME:“Unable to get major%d/n’’,MAJOR_NR); return(result); ) printk(KERN_INFO DEVICE—NAME:“init OK/n’’): return(O); ) 2.应用程序访问内核的接口的结构变量can_fops static struct file operations can_fops={ read:can—read, write:can—write, open:can_open, release:can—release, ); 3.CAN驱动程序的opcn()函数 int can open(struct inode·p_inode,struct file*p_file) { intnum; int result; num=MINOR(p indoe->irdev); if(TRUE!=S3C2410CANInit(num)) { printk(‘'<0>¥3C2410_CANInit Err!!./n’’); retum ENODEV; ) result=requestirq(IRQ-CAN,can irq_interrupt,SA_INTERRUPT,‘‘m)r,’ DEVICE—NAME,NULL); 43 哈尔滨理T大学工学硕士学位论文 if(resul}O) { Printk(‘'<0>Interrupt Set OK!./n’,); ) else { Printk(“<0>Interrupt Set Err!ErrCode=%d./n",result); returll result; ) MOD_INC_USE_COUNT; Printk(“<0>”DEVICE—NAME“Opened!./n”); Return(0); ) 4.3.4集中器通讯的实现 应用程序中使用了VC抖的通讯控件Microsoft Communication Control。在 要进行通信程序所涉及的对话框中嵌入此控件并进行相应设置,便能实现通讯 功能。通讯采用查询方式,以问答的形式进行。每次通讯都由系统控制计算机 向下发送命令,集中器执行命令并返回结果,在一段时间内系统控制计算机等 待并不断查询是否收到信息,收到信息或等待时间到了便返回【43l。程序流程图 及实验结果如图4—7所示,主要代码如下: CString sendchar;, CAutometerApp·app=(CAutometerApp宰)AfxGetApp0; If(app->commflag!=1) //检测通讯启动标志app->commflag { AfxMessageBox(“通讯功能尚未启动,通讯测试不能进行。请先启动通讯 功能。"); Return; M_com rm.SetPortOpen(TURE); M_com_rm.SetSettings(“1 1 5200,E,8,1”); Do //打开串口 //设置参数 { 哈尔滨理工大学T学硕十学位论文 Sendchar='‘METER’'+crealmeterset.m__address_code; ∥生成命令 M_com_rm.setoutput(COleVariant(Sendchar)); //发送命令 d0 { Sendchar="METER"+erealmeterset.m address_code; M_com_rm.Setoutput(C01 eVariant(sendehar)); CTime StartTime=CTime::GetCurrentTime0; ∥生成命令 ∥发送命令 //获取当前时间 CTimespan ElapsedTime; do if(m_eom_rm.GetlnBufferCount归23) //收到字节? { M_com_rm.SetlnputLen(0); ∥读取全部数据 Reeechar=m_com_rm.Getlnput0.bstrVal; bResponse=l; ElapsedTime=CTime::GetCurrentTime0一StartTime; > while(ElapsedTime.GetTotalseeonds0<2); if(!bResponse) //等待2秒钟 //超时无响应则提示出错信息 { error---crealmeterset.m address+"抄表失败!”; MessageBox(error); > M_eom_rm.SetPortopen(FALSE): //关闭串口 > ) 45 哈尔滨理工太学I学硕士学位论文 图4-7通讯程序流利图及通信实验结果 Fi94—7Communicationnoc∞Flowchart andCommunicationResult 哈尔滨理工人学工学硕1:学位论文 4.4抗干扰设计 众所周知,串入微机测控系统的干扰,其频谱往往很宽,且具有随机性, 不但作用与硬件系统,而且在软件系统中也体现出来,采用硬件抗干扰措施只 能抑制某个频段的干扰,仍然会有一些干扰侵入系统。因此,除了采取必要的 硬件抗干扰措施外,采用必要的软件抗干扰技术更能保证多对象远程抄表系统 集中器的可靠和平稳运行。 本系统在软件编写过程中主要采取了以下抗干扰措施[441: (1)采用指令冗余; (2)编写软件陷阱; (3)内部看门狗; (4)数据写入存储器时采取一定手段; 1.指令冗余的设计 当PC指针受到干扰出现程序“跑飞"时,可能会出现将操作数数值改变 或将操作数当作操作码的错误。当程序“跑飞”到某个单字节指令上时,并自 动纳入正规;当“跑飞”到某个双字节指令的操作码上时,将操作数当作操作 码,程序执行将出现错误;当程序“跑飞”到某个三字节指令上时,因为它们 有两个操作数,程序执行时就更容易将操作数误认为是操作码。 因此,可在双字节和三字节指令之后插入两个或三个单字节“NOP”指 令,这可以保证其后的指令不被拆散。对程序流向起决定作用的指令和对系统 工作状态起重要作用的指令之前人为插入两条“NOP修空操作指令,可以保证 一旦程序“跑飞"迅速纳入轨道;也可以在其后面重复写上这些指令、以确保 这些指令的正确执行。 由此不难看出,采用冗余技术使PC指针纳入正常轨道的条件是:“跑飞一 的PC指针必须指向程序运行区,并且必须执行到冗余指令。 2.软件陷阱 当微处理器受到各种干扰时,若PC指针正好跳到非程序区,就可能陷入 某种循环不能出来。这有两种情况,一是循环中无清WDT指令,在给定看门 狗定时器条件下,经过一定时间WDT起作用,将PC指针复位,工作恢复正 常;二是循环中可能包含了清WDT的指令,产生了死机。对于第二种情况可 以通过在非程序区放置软件陷阱加以解决。 软件陷阱由三条指令组成: 47 哈尔滨理工人学工学硕一}:学位论文 NOP NOP L,MPEER EER错误处理程序主要功能是置错误状态标志和出错时程序指针以供查 询。当然此时的写内存操作和写EEPROM操作都需经过严格的写入判断,否 则此项标志位或指针数据也将是不可靠的。 由于软件陷阱安排在J下常程序执行不到的地方,所以它不影响程序执行的 效率,在程序区允许的范围内,多设置一些软件陷阱有百利而无一害。 3.“看门狗”措施 如果“跑飞’’的程序落入一个临时构成的死循环中,冗余指令和软件陷阱 都将无能为力。这里采用复位的办法使系统恢复正常。“看门狗一电路的功能 就是对CPU进行实时检测,不论何种原因,只要没有对看门狗定时器WDT进 行周期性的、及时的清0。WDT就会出现超时溢出,从而引发微处理器复 位。当CPU落入死循环之后,能及时发现并使整个系统复位。 4.采取措施保证EEPROM数据写入 需要说明的是,如果“看门狗”起作用说明程序计数器的内容被破坏,因 此其它寄存器或片内RAM的内容同样也可能遭到破坏,这可能导致把一个错 误的数据写数据写入EEPROM中,这是不允许的。因此,必须做好以下几点 工作: (1)正常写入EEPROM之前,要进行一系列操作,可将其分成几部分, 每一部分设置一写入口令。只有程序正常一步一步运行,口令才会逐一被赋予 正确的值,到最后写入时在判断所有的口令是否正确。若正确,写入,否则退 出;写入完成,口令清除; (2)数据双备份; (3)初始化程序要向用户显示有关信息、需时较长,另外,由于电源波动 时复位的可能性较大,程序由此“跳飞"的概率最大。所以,一上电,立即将 双份数据设为不同,然后初始化之后再读EEPROM。若程序在初始化阶段 “跑飞,’也不会写入错误数据; (4)写入之前对数据的合法性进行判断,即对信息或参数的数据格式进行 判别,有了这样的限制,可进一步提高可靠性。 哈尔滨理T大学工学硕士学位论文 4.5本章小结 本章针对多对象集中器的功能进行软件的实现,集中器的软件设计主要包 括集中器主程序的设计、集中器接受命令子程序的设计、集中器向智能表发命 令子程序软件的设计、集中器向上位机应答子程序的设计、CAN驱动程序设 计、通讯的实现,并给出了部分程序流程图和部分代码。介绍了多对象集中器 系统的通信协议,并提出了软件的抗干扰措施。 49 哈尔滨理.T大学工学硕士学位论文 结论 经过广泛的调查、研究、比较、反复地规划之后,完成了多对象远程抄表 系统集中器的设计与实现。多对象集中器的设计借鉴了市场上其他产品的研究 成果,采用高性能的ARM9自行设计,研究侧重点主要为通信部分,实验结果 表明集中器抄表准确,运行稳定,现将本文工作总结如下: 1.根据多对象集中器系统的特点和功能要求,选择¥3C2410芯片作为集中 器的微处理器;选择C语言作为集中器系统的嵌入式开发语言,ADSl.2作为软 件开发环境。 2.设计集中器系统的硬件电路,对集中器系统的各部分模块电路进行设 计; 3.完成了集中器系统软件设计,主要为通信程序的设计; 4.对集中器系统进行了连续运行测试,测试结果表明,系统工作稳定。 本着以软代硬的原则,简化硬件系统的设计,省去了很多外围电路,降低 了成本。适用于对多对象智能表数据采集、存储、传输,投入资金少,开发周 期短,特别适合于我国目前的国情,对我国目前大多数居民的多对象耗能表实 现无人抄表具有指导意义,具有很高的实用价值和推广价值。 本研究存在不足的地方及后续研究工作:集中器软件设计有些地方还不够 优化,目前主要是从功能方面完成了程序的设计,需要进一步从执行效率,存 储空间占用,代码量方面来对程序进行优化。 哈尔滨理工大学T学硕士学位论文 参考文献 [1】 徐德军,蔡键龙,龚建荣.用单片机实现远程自动抄表[J】.电子工程师, 2007,7(5):7-1 3. 【2】 KE X P.Remote automatic apparatus system and its communication method[J]. The Army Commumcation Technolog,2006,9(4):3—17. [3】 张丽陶.IC卡水/热量表产业化开发的关键技术研究[D】.天津:天津大学, 2004:12.1 5. [4】 庄严,向农.电力远程抄表系统的设计与实现【J】.微计算机信息,2006, 13(10):12-18. 【51 张旭辉.低压电力线载波抄表系统的研究[D1.哈尔滨:哈尔滨理工大学, 2004:9.11. 【6】 ETIERME M.Measuring reactive power in arlergy meters[J].Metering International,2002,1 0(1):489-490. 【刀 FISCHER R A,SCHULZ N,GORDON H.Information management for姐 automated meter reading system[J].Proceedings of the American Power System,2004,8(6):1 50-1 54. 曾乃鸿.自动抄表技术在北美的发展【J】.供用电,2004,1 30):4-1 5. 曾乃鸿.当前自动抄表技术的现状和展望【J】.华东电力,2006,4<3):3.12. 降妙n ,,哪 STIDQ.RUTH W:Meter reading methods change slowly[J].Gas Utility Manager,2007,9(4):26-29. n U 王鹏,谭宝成.基于GSM/Mdome无线通信的自动抄表系统实现【J】.西安 工业学院学报,2008,15(3):12.13. n 史根久.CAN现场总线系统【M】.北京:国防工业出版社,2004:11.23. n 程凯,孙克怡.RS-485总线理论及应用分析[J】.今日电子,2005,6(7):36.38. n 刁习卅 LU E,ZHANG B H,LU Y M.Automatic meter reading system solution and it’S realization[J].Electric Power Automation Equipment,2003,1 3(6):1 8—22. n 习 SABOLIC D.Influence of the transmission medium quality on the automatic meter reading system capacity[J].Power Delivery,IEEE Transactions on,July 2003,l 8(3):22—28. 【16】 BRAIN P ARM the key technical operations[J].Electric Power Automation Equipment,2007,6(4):46—53. 5l 哈尔滨理工大学T学硕士学位论文 【17】勒建军,朱得发.基于CAN总线的智能水表自动抄收系统[J】.福建电脑, 2003,l 2(3):34—35. [18】侯长来.水表数据传感器的设计[J】.计量与测试技术,2004,11(5):29—31. 【19】齐秀波.电能计量集中抄表技术的发展【J】.电测与仪表,2006,9(3):33-43. 【20】YU F L.Private used chip AD7755 of single phase electric meter[J].American Electronic Technology,200 1,1 3(1):2 1-32. [2l】宫召杰,郭忠文等.基于GPRS的无线自组织网络远程抄表系统【J】.计算机 应用研究,2006,4(9):187—189. [22】VIT矾IRJ S.The USe of ethemet at low level of factory communication systems[J].Computer standards&Interfaces,2001,23(4):267-277. 【23】龙子庄.电力载波远程抄表系统的研究和设计[D】.合肥:中国科学院, 2006:4245. [24】章珏瑞,楼蔚松,邓笑天.基于嵌入式电能抄表集中器设计[J】.金华职业 技术学院学报,2008,l 2(3):3545. 【25】张建飞.低压电力抄表系统集中器部分的设计与实现【D】.武汉:武汉理工 大学,2004:3245. 【26】ATMEL C.ARM9 based on microcontroller data manual[J].Proceedings of the American Power System,2005,7(3):1 5-36. 【271吴明晖,徐睿,徐辰.基于ARM的嵌入式系统开发与应用[M】.北京:人民 邮电出版社,2004:3245. 【28】肖韵,汪道辉,石银安.低压电力载波集中抄表系统集中器设计【J】.微计 算机信息,2007,12(3):3545. 【29】X-tJ D Y XU D M.The concentrator design and realization ofremote apparatus American based on¥3C24 10[J].Proceedings of the Power System,2005,l 5(6): 30-47. 【30】陈铮.居民用电集中抄表总线与载波方式的运行比较[J】.电力需求侧管理, 2002,4(4):52·54. 【3 1】CHANG X L.111e design and theorem of intelligence instruments[J]. Communication of Electric Power,2006,5(2):42-45. 【32】RUO B.Remote automatic apparatu based on commtmication[J].American Power System,2007,6(3):3740. [33】WEN J L,QtAN M M,GUO W L.The design and realization of remote automatic water meters system[J].Communication of Electric Power,2004, 52 哈尔滨理工人学工学硕十学位论文 25(2):54-57. 【34]张道德,张铮,杨光友.RS-485总线抗干扰的研究[J】.湖北工业大学学报, 2005,3(7):10-13. [35】FERNANDEZ R O,PERES R.Remote monitoring and control of electronic nutrunners诵m embedded internet[J].Industrial Electronics Society Volume 2002,34(3):5-8. 【36】张秀萍,朱齐丹,蔡成涛.基于单片机和CAN总线的信号测量和数据传输 【J】.应用科技,2005,32(9):45-48. 【37】GROMAN C,BALKAU K H.High speed communications using RS422 /RS485 protocol[J].Electronic Industry,2001,32(9):46—53. 【38】ANDREW N,CHRIS W.ARM System Developer's Guide:Designing and optimizing system software[M].Elsevier Pte ltd.2005:58-80. [39】周凯,郭黎利.基于MAX485实现PC机与单片机通信的程序设计阴.应用 科技,2003,3(7):32.34. 【40】蒋荣.基于CAN总线技术智能节点的设计和研究【J】.机械制造与自动化, 2006,13(1):21-32. 【4l】杨旭雷,张浩.基于RS-485总线的测控系统串行通信协议及软硬件实现[J】. 电气自动化,2007,4(2):28.31. [42】颜永军.Protel99电路设计与应用[M】.北京:国防工业出版社,2005:12.54. 【43】汪金积,孙自强.基于RS-485总线的多机通信在智能化小区的应用[J】.自 动化仪表,2004,5(3):57-60. 【44]李海燕.单片机测控系统的抗干扰技术【J】.船电技术,2006,6(9):26.28. 53 哈尔滨理T大学工学硕上学位论文 附录集中器软件实现程序 1.集中器主程序 #include”def.h什 #include”24 1 Oaddr.h” #include”241 01ib.h” #include竹241 0slib.h什 #include什mmu.hn 嘏nclude”uart.h” #include什timer.h竹 #include竹rtcapi.h— volatile U32 global_counter=O; void HaltUndeffvoid) { printf(”Undefined instruction exce曲on!!!、ll”); while(1); ) void HaltSwi(void) { printf(”SWI exception!!!kn”); while(1); ) void HaltPabort(void) { printf(”Pabort excepfion!l!Xn”); whiM(1); ) void HaltDabort(void) { printf(”Dabort exception!!!ha”); while(1); } 哈尔滨理T大学工学硕十学位论文 void Isr_Init(void) { pISR_UNDEF=(U32)HaltUndef; pISlUWI =(U32)HaltSwi; plSR_PABORT=(U32)HaltPabort; pISR_DABORT=(U32)HaltDabort; rINTMOD=OxO; //砧l=取Q mode rINTMSK=BI£4LLMSK; //All interrupt is masked. ) static void Ledl Flash(U32 i) { staticintcnt=30; if【!(—伽t)) { ReleaseBiosTimerEvent(i); ) ) static void timeout_counter(U32 i) { global_counter++; if(global_counter%2) Led_Display(0); else Led_Display(1 5); > hat Main0 { MMU_EnablelCaehe0; SetClockDivider(1,1); SetSysFclk(D矾j CLK_VAL); Delay(0); Port_Init0; IsrlnitO; 55 Uart Sdect(O); Uart_Init(0,UART BAUD); Requ砌ios‰眦V锄t(3,Led l Flash);//when嘲喊aut0 op‘ en bios廿mer RequestBiosTimerEvent(5,timeout counter): EnableModuleclock(CLOCK UART0tCLOCK TIMERICLOCK GPIOICLO CK_NANDICLOCK—‘'LCD); rLCDCON 1 I=1; //ENVID=ON puts(’’宰料宰木幸幸奉宰幸料木·幸幸枣幸|I幸·奎事}奉事事事奉'幸宰事事事幸‰”): p呶"毒宰幸宰事幸幸拿宰料宰system Ready宰奉幸幸·掌事幸·拳~竹): putS(什料毒幸幸·木奉幸宰宰枣木}¨}··宰事·奉奉奉·宰拳奉+幸+}事幸+‰"); global_counter=O; uart0_rxjrq_init0; while(1) { 1f(event_states&EVENT UART RX OVER) {BIT_CLR(event_states,EVENT UART RX OVER): command_process0; } if(event_states&EVENT_TIMER) f BIT CLR(eventstates,EVENT TIMER); ) 哈尔滨理T大学工学硕士学位论文 2.集中器接收上位机命令程序和向智能表发数据程序 #include”def.h” #include"241 0addr.h竹 #include"241 01ib.h竹 #include”uart.h” #include竹iic.h” volatile int event_states; volatile int uart——rx——states; U8 iic_data_buf[256]; ST_UART_RX_PACKET uart_rx_packet; static U 1 6 user_id; extem volatile U32 global_counter; extern void my_printf(char幸tint); #define INC—STEP sizeof(S忑一SER_INFO) void_mernset(U8幸array,U8 ck U32 length) { register U32 i; for(i=O;i<length;i++) { }(array+i)=oh; ) v)oid』Uart0RxInt(void) { register U8 oh; ClearSubPending(BIT_SUB_RXDO); ClearPending(BI£“ART0); if(global_counter>UART_RX_MAX TIMEOUT) S聊yS.HEAD; { uart rx states=UART RX > global_counter=0; ch=RdURXH00; 57 哈尔滨理工大学工学硕上学位论文 switch(uart——rx——states) { case UART——RX——STATUS——HEAD: if(ch:==UART RX_HEADER) { uart—rx—states 2 UART_RX_STATUS_LEN; uart rx packet.header=ell; ) break; case UART——RX——STATUS——LEN: if(oh<UART_RX_MAX_LENGTH) { uart—rx—states=UART_RX_STATUS_CMD; uart_rx__packet.1ength=oh; }else uart rx states=UAIU’RX STA=rUS HEAD: ) case break: UART RX ST久兀,S CMD: uart_rx_packet.command=ch; uart_rx__packet.index=O;_rnemset((unsigned char*)&uart_rx_packet.parameter[O],叼’,uart_rx_packet.1cngth); uart rx states=I,ART RX STf气TUS D户灯A: break; case UART RX ST久兀7S DATA: uart_rx__packet.parameter[(uart_rx_packet.index一】_ell; if(uart tx packet.index—uart rx packet.1ength—1) { uart rx states=UART RX STATU S HEAD: BIT_sET(eventstates,EVENT_UART_RX_OVER); ) break: 哈尔滨理T大学工学硕士学位论文 default: uart—rx—states=UART_RX_STATUS_HEAD; break; ) } void uart0 rx irq_init(void) { //initⅨstatus variable uart—rx—states=UART_RX_STATUS_HEAD; event—states=O; //init rx interrupt plSRⅣART0=(U32)Uart0RxInt; //串口接收数据中断 ClearSubPending(BIT_SOa_RXD0); ClearPending(Bn yART0); EnableSublrq(BIT_SUB_gXD0); Enablelrq(BI浅,ART0); ) void reset_storagedevice(void) { U8 aata[1]; data[0】=0x00; save or load_data(IIC_WRITE,&(data【0】),START_DATA_OFFSET,1); ) U32 eheek__storage_device header_info(void) { U32 rt; U8 data[4]; save or load_data(IIC_READ,&(data【O】),START_DATA_OFFSET,1); if(data[0】!=0x80){ data[0】=0x80; save—or一10ad_data(IIC_WRITE,&(data[0】),START_DATA_OFFSET,1); data[0】=Ox00; data[1】=0x00; 哈尔滨理T大学工学硕十学位论文 data[2]=Ox00; data[3】=0x05; save or load_data(IIC_WRITE,&(data[O】),HEADER_INFO_OFFSET,4); rt=0x00000005; ) else { save or load_data(IIC_READ,&(da叫0】),HEADER_INFO_OFFSET,4); rt=((data[0】<<24)&OxFV000000)I((data[1】<<1 6)&OxOOFF0000)l((data[2】 <<8)&OxOOOOFF00)l(data[3】&OxFF); , rctlml rt; ) U8 get_user_information(U 1 6 total_user) { U8 j,t_data[10]; U16 i,temp_id; U32 rt,addr; rt=o; for(i=O;i<total_user;i++) { addr=i·INC—STEP+5; save or load_data(IIC_READ,C08木)&(t_‘lata[O】),ad血INC_STEP); temp_id=(tAata[O】<<8)I t_data[1]; if(temp_id—user id) { iic_data_bull0】_0xF0; iic__data_butI 1】=0x77; for0=2;j<12;ja-e) { iic_data_butlj】-t__dataU-21; } iie_data_butI 1 2】='Xn’; 哈尔滨理工大学T学硕上学位论文 rt 2 1; break; ) ) return rt; } void update_storage_device_header_info(U32 val) { U8 data[4]; data[0】=(val&0xFF000000)>>24; data[1】=(Val&OxFV0000)>>16; data[2】=(Val&0xFF00)>>8; data[3】=val&0xFF; save—or—load data(IIC_WRITE,&(data【0】),HEADER_INFO_OFFSET,4); ) void view_data_information(U8 type) { #if DEBUG—.MESSAGE——ENABLE U8 i; if(type&TYPE_PACKET) { Uart_Printf(¨Xndata ofpacket.、n”); uart rx__packet.check_sum=uart rx__packet.parameter[ua_rt_rx__packet.1ength-21; Uart Printf(”¨¨·幸掌·料uart rx packet.header=%x.Xn什,uart_rx_packet.header); Uart Printf(’t··宰·宰·}事¨uart rx packet.1ength=%x.Ⅵ”,uart_rx_packet.1ength); Uart Printf(”奉奎幸幸幸宰·宰幸幸uart_rx__packet.command--%x.、Il",uart rx packet.comman d); for(i=O;i<uart_rx_packet.1ength一2;i抖) Uart Printf(”事料幸}奎}幸宰宰u砸硒packet.parameter[%d]=%x.\n竹,i,uart rx_packet·par ameter[i]); Uart_Printf("奉·宰幸幸·幸奉幸事uanⅨpacket.check_sum=%x.、lln,uart rx_packet.check s urn); > 6l 哈尔滨理工大学T学硕上学位论文 if(type&’I’Y Ptu SER) { Uart_Printf(”hadata ofuserAn"); Uart Printf【”}木宰宰奉宰木}幸书header=%x.kn",iie_data_butlO]); Uart Printf(”奉枣木木幸·幸宰,I宰command=%x.Xn",iic_data_bufI 1]); Uart yrintf(”木毒宰幸幸搴宰幸幸奉parameterO=%x.u",iie data_butl2]); Uart Printf(”宰幸奉幸木木幸事宰宰parameterl=%x.Xn",iie_data_bufl3]); Uart Printf(”奉幸+木奉幸木木事奉parameter2=%x.kn",iie__data__buIl4]); Uart Printf(”幸幸奉幸事幸拳···parameter3=%x.、】a",iic_data_butl51); Uart_Printf(n·幸事幸·幸幸幸·事parameter4 =%x.kn",iic__data_bufl6]); Uart_Printf(”·宰宰幸宰··枣幸· =%x.kn",iic_data butl7]); Uart_Printf(”}·}幸木幸幸幸幸事parameter6=%x.Xn",iic_data_butl8]); ) #endif Uart_Printf("幸幸枣木宰宰事幸毒宰parameter7=%x.Xn",iie_data_butt9]); Uart_Printf(’’··宰·宰·掌毒事奉parameter8=%x.、n”.iic_data buf[10]); uart_Pl‘ntf(”奉幸奉奉幸宰幸事木事parameter9=%x.Xa",iic data butI 1 1]); Uart_Printf(”料}·事··宰宰宰parameterlO=%x.、ll”,iic!!da掘buf【12】); ) void uart send_array(U8·buf,U32 length) { register U32 i; for(i=0;i<length;i++) { putch(幸(buf+i)); ) void { register U1 6 dataoffset,user_number, register U32 header_info; register U8 tempval; header—info=check_storage_device_header_infoO; 哈尔滨理T大学工学硕士学位论文 user—number=Ⅳl 6)((11eader_info&0xFFFF0000)>>1 6); data—offset=Ⅳ1 6)(header_info&0x0000FFFF); #if DEBUG—.MESSAGE——ENABLE Uart_Printf(”·幸宰}宰宰data_offset=-%d,user_numbel-=%d.Xn",data_offset,user_number); view_data_information(TYPE_PACKET); #endif switch(uart—rx packet.command) { case COMMAND—RX—ONE—USER—INFO:/宰rx data and save to 24c04奉/ puts(”receive.、n竹); for(tempval=O;tempval<uart rx packet.1ength一2;tempval++) { iic_data_buf[temp_val】=uart rx_packet.parameter[tempval]; ) save—or一10ad_data(IIC_WRITE,(u8木)&(iicdata_butlO]),data_offset, uart rx packet.1ength-2); data—offset+-uart_rx_packet.1ength一2; user—number+=l; updatestorage_device._header_info((U32)((user_number<<1 6)I data_offset)); break; case COMMAND—RX—ALL二USER—INFO: puts(”rx all user command.kn”); break; case COMMAND—TX—ONE—USER—INFO:/·load data from 24c04 and send through uartl_| user id=(U 1 6X((uart_rx_packet.parameter[0]<<8)&0xFF00)l(uart rx_packet.parame terfl])); tempval=get_user_information(user_number); if(tempval) { #if DEBUG——MESSAGE—.ENABLE view_data_information(TYPE-ⅣSER); #endif 哈尔滨理工人学工学硕士学位论文 Uart_Select(CONSOLE_TX); uart_send_array((U8奉)&(iie_data_buf[0]),INC—STEP+3); ) else{ puts(”Not found record.、ll”); , break; case COMMAND—TX—ALL_USER—INFO: puts(”饮all Bser command.、ll”); break; case COMMAND——COMMUNICATION——TEST: puts(”communication test ok.、ll”); break; default: puts(”unrecognized or invalid command.、Il”); break; ) 哈尔滨理工大学工学硕士学位论文 攻读学位期间发表的学术论文 [1】刘露,叶梦君,马建为.基于LonWorks的家用远程抄表系统[J].低压电器, 2008,1 6:45-49. 哈尔滨理工大学工学硕十学位论文 致谢 本文是在刘露副教授的悉心教导下完成的。在读研究生期间,刘老师严谨 求实的作风、渊博的学识、崇高的敬业精神给我留下深刻的印象,我为之感 动,这将使我终身受益。刘老师不仅在学习上给我极大的帮助,还在生活上给 我无微不至的关怀。我会终生铭记恩师的教诲,在今后的人生道路上再接再 厉,无愧于恩师的栽培。谨此论文脱稿之际,向刘老师表示衷心的感谢和崇高 的敬意。 在读研期间董怀国老师、马建为老师给我了很大的帮助,在此对他们表示 深深的谢意。本论文的完成还得到了袁飞、徐金风、李孟平等同学和师弟师妹 们的帮助,在此对他们表示感谢。 对我的父母、表妹、表姐的默默帮助和支持表示感谢! 最后向参加论文评审、答辩的专家和老师表示衷心的感谢。 基于ARM的多对象远程抄表系统集中器的设计与实现 作者: 学位授予单位: 叶梦君 哈尔滨理工大学 相似文献(0条) 本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1547772.aspx 下载时间:2010年5月25日

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。