儒家思想是什么意思| 狐臭是什么引起的| 招财猫是什么品种| 左手经常发麻是什么原因引起的| 养尊处优的意思是什么| 什么人适合学玄学| 夜间睡觉口干口苦是什么原因| 滋养是什么意思| 环形红斑是什么病| 伤口发痒是什么原因| 性功能障碍挂什么科| 什么是预防医学| 梦见长大水是什么意思| 尾盘拉升意味着什么| 唐氏综合征是什么| g750和au750有什么区别| 尿素测定是查什么| 右侧后背疼是什么原因| 鱼肝油又叫什么名字| 木牛流马是什么意思| 长颈鹿的脖子为什么那么长| 身份证数字分别代表什么| 印度人属于什么人种| 小狗什么时候可以洗澡| 山竹什么人不能吃| 唾液酸苷酶阳性什么意思| 如果是什么意思| 螃蟹不能跟什么一起吃| 打了狂犬疫苗不能吃什么| 1905年是什么朝代| 01年属什么的| 妇科炎症用什么药最好| 什么鱼适合清蒸| 寸头适合什么脸型| 情窦初开是什么意思| 眼底筛查是检查什么| 为什么拉黑色的屎| 雌性激素是什么| 八字带什么的长寿| 玉米排骨汤放什么调料| 吃三七粉不能吃什么| 口水多是什么原因引起的| 生死劫是什么意思| 广州有什么玩的| 扶苏是什么意思| 海带与什么食物相克| 什么叫混合痔| 什么是呼吸性碱中毒| horns是什么意思| 欲生欲死是什么意思| 口嫌体正直什么意思| 为什么乳头会疼| 小便发红是什么原因| 什么的寒风| 阴道炎吃什么消炎药| 手上长汗疱疹用什么药| 甲亢有什么症状表现| 水果什么时间段吃最好| 百合花什么时候种植| 龙井茶属于什么茶| 子宫复旧不良有什么症状| 40岁男人学什么乐器好| 给女生送礼物送什么好| 尿路感染是什么症状| 同比什么意思| 吃饭出虚汗是什么原因| 618什么意思| 孕妇缺铁吃什么食物好| 艾灸什么时候做最好| 诺如病毒是什么病| 惊奇的什么| 大脑供血不足是什么原因引起的| 举案齐眉什么意思| 1973年是什么年| 黄精什么味道| 发烧喝什么汤| 腰椎间盘突出吃什么好| 大型血小板比率偏低是什么意思| 梦到自己杀人是什么意思| 浓茶喝多了有什么危害| 为什么心里老是想着死| 尿蛋白是什么症状| 社保缴费基数是什么意思| dm医学上是什么意思| kcl是什么药| 冰心的原名叫什么| 1959年属什么| 人生导师是什么意思| 嗜的意思是什么| y是什么意思| 无用功是什么意思| 黄体破裂是什么意思| 八月二十五是什么星座| 颈椎病用什么药膏| 巨蟹座和什么座最配对| 扁桃体结石挂什么科| 肌肉损伤吃什么药| 有毒是什么意思| 十二指肠溃疡是什么原因引起的| 2024是什么年生肖| 风湿吃什么药好| 大姨妈是什么| 早上起来口干口苦是什么原因| mb是什么意思| 拍身份证穿什么衣服| 肝阴不足吃什么中成药| 但闻人语响的但是什么意思| graff是什么牌子| 咳嗽有白痰吃什么药| 中暑为什么不能打点滴| but什么意思| 手掌上的三条线分别代表什么| 发烧头晕吃什么药| 坎坷是什么意思| 容貌是什么意思| 菠菜不能与什么一起吃| 每个月月经都提前是什么原因| 蓝五行属什么| 孕期血糖高可以吃什么水果| 指甲发紫是什么原因| 气管小憩室是什么意思| 孕妇为什么那么怕热| mpn是什么意思| 水浒传是什么朝代| 猪鞭是什么| 66年出生属什么生肖| 阴唇大什么原因| 指甲变形是什么原因| 拉屎拉出血是什么原因| 心脏不好吃什么药| 什么是宇宙| 牛肉饺子馅配什么蔬菜| 心脏有个小洞叫什么病| 东成西就是什么生肖| 辣条是什么意思| 朱祁镇为什么杀于谦| 腋毛癣用什么药膏最好| 口苦什么原因| 伊索寓言有什么故事| 右手麻木是什么病| 左侧卵巢内无回声是什么意思| 六合是什么意思| 备注什么意思| b型钠尿肽高说明什么| 1800年是什么朝代| 鹿查什么部首| 跑马是什么意思| 孕妇喝椰子水有什么好处| 什么叫寓言故事| 手淫会导致什么疾病| 舌头尖发麻是什么原因| 葛粉吃了有什么好处| 消化不良的症状吃什么药| 87年属于什么生肖| 人为什么会哭| 铁蛋白高挂什么科| 轶事是什么意思| 豆是什么结构| 血钾低吃什么| 长期喝咖啡有什么好处和坏处| 土豆粉是什么做的| 什么属相好| 甲状腺结节是什么病| 11月29号什么星座| 为什么喝牛奶会长痘| 渡劫是什么意思| 什么是业力| 0.01是什么意思| 可燃冰属于什么能源| 漫山遍野是什么意思| 小肚子发胀是什么原因女性| 出汗有异味是什么原因| hip是什么意思| 小腿抽筋什么原因| 七九年属什么| 烧心吃什么药| 11月12号是什么星座| 维纳斯是什么意思| 云加一笔是什么字| 清热去湿热颗粒有什么功效| 时间是什么意思| 滑膜炎吃什么好得快| 平均红细胞体积偏高是什么原因| 五月十七是什么星座| 1948年是什么年| 藏语扎西德勒是什么意思| 女朋友生日送什么礼物| 秦始皇原名叫什么名字| 付之一炬是什么意思| 生姜水洗头有什么好处| 吃生姜有什么好处| 手指甲有黑色条纹是什么原因| 霉菌性阴道炎吃什么药| 市组织部长是什么级别| 肝回声稍密是什么意思| 胡子白了是什么原因| 卵泡生成素高是什么原因| 什么是工作日| 双是什么意思| 人格魅力什么意思| 新生儿满月打什么疫苗| 健身吃什么| 翡翠五行属什么| 死鬼什么意思| 美国的国鸟是什么| 潸然泪下是什么意思| 舌根起泡是什么原因| 逍遥丸的功效和作用是什么| 俗不可耐是什么意思| 70a是什么尺码| 白条鱼是什么鱼| 骂人是什么意思| 乳腺低回声结节是什么意思| qty什么意思| 4月16什么星座| kkp什么意思| 口舌生疮吃什么药最好| 虚岁30岁属什么生肖| 胃寒吃什么食物好| 姚字五行属什么| 黑裙配什么颜色的上衣| 一代明君功千秋是什么生肖| 阳历7月份是什么星座| 牛肉炖什么菜好吃| 尿酸高会引发什么疾病| 藏族信仰什么教| 女人做梦梦到蛇是什么意思| 阿胶有什么功效| 什么是便秘| 肝内高回声结节是什么意思| 南京菜属于什么菜系| 菊花有什么作用| 马拉松起源与什么有关| 鸡蛋为什么不能放冰箱| 懵逼是什么意思| 章鱼的血液是什么颜色| 什么手表品牌最好| 什么是力量训练| 产后第一次来月经是什么颜色| 茯茶是什么茶| 理想主义是什么意思| 什么言什么色| 黄鼠狼吃什么| 经常腰疼是什么原因女| 浅蓝色裙子配什么颜色上衣好看| 肠胃不舒服吃什么| 体检前要注意什么| 伤心的反义词是什么| 10月19是什么星座| 备孕需要检查什么| 7月25号是什么星座| 士官是什么| 8月1日是什么节日| 婴儿黄疸高有什么影响| 为什么头皮总是很痒| alaska是什么意思| 人艰不拆是什么意思| 腿疼去医院挂什么科| 反清复明的组织叫什么| 蜗牛吃什么| 淋巴是什么| 低血压要注意些什么| 网线长什么样| 救人一命胜造七级浮屠是什么意思| 百度

新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于MAXQ3120微控制器的电表(EM)参考设计

桃花驿瞄准国家级特色小镇 “桃花驿”样板计划公布

作者: 时间:2025-08-04 来源:网络 收藏
百度 暴雪:全省平均降雪日数13天,其中2月21~22日引发1起暴雪灾害。

()构建了一款多功能、多费率,它符合世界范围的全部可用标准。构成了一款能够适合各地要求和各种性能要求的原型。这篇文档将指导软件工程师,通过定制代码实现一些特殊的需求。

目标读者

本文档假定读者熟悉C语言、MAXQ20微架构以及汇编语言。读者也需熟知全电子式电表的基理。

工具

电表采用IAR Embedded Workbench工具进行编译。为便于将软件移植到其它开发环境中,除了一种例外情况外,整个软件避免了与IAR相关的语言特性。这种例外情况位于汇编语言文件中,其中包括了一些对标准汇编伪指令集的特定IAR扩展。这些特定IAR扩展命令,不仅可告知连接器各不同段的分配情况,而且告知调试器有关某些机器资源的变化情况。在其它开发环境下构建工程,可将这些伪指令去除。

高层硬件描述

硬件的核心器件是几乎囊括了实现多功能、多费率电表所需要的所有功能,这些功能包括:双通道、高精度A/D转换器(ADC),一个乘法累加器(MAC),通信端口和一个显示。完成一个电表设计,仅需要少量的外部元件。

在参考设计中,提供两个通信通道:一路红外通道,包含一个可解码38kHz载波频率的接收模块和一个直接由微控制器驱动的红外LED,一路完全隔离的RS-485通道;用作非易失存储器的128kb I2C EEPROM;一个可视LED和一路隔离光耦通道,用于指示电表脉冲;一个用于设置网络地址的按钮;和一个用于显示的LCD。

这种硬件构成预示着以下一些应用信息。选择一个外置I2C EEPROM,意味着系统中必须包含I2C软件,而不提供硬件I2C主机。电表脉冲硬件意味着软件必须能够产生极为精确的脉冲定时。两路通信端口表明,微控制器有限的资源要被两路通道所共享。

软件系统综述

软件系统必须同时跟踪多个进程。首先也是最重要的一点,软件系统必须监测ADC,计算用电量并报告其它额外信息,这些信息包括RMS电压和电流、功率因数和峰值功率。这个基本进程非常关键,其它任何进程都不能干扰这个最重要的基础任务。在持续监视用电量的同时,软件还必须驱动显示、监视两路通信端口、监视按钮以及电力线路上的电源失效事件,完成从外部EEPROM获取信息的请求,并跟踪费率时段的变化。

任务管理方式

初始一看,要完成以上多个实时任务,迫切需要某种实时操作系统(RTOS)来进行调度管理和资源分配。但进一步分析后,就会发现不用传统RTOS的两个充分理由。

首先,要求即时响应ADC中断。当ADC有可用的采样数据时,必须在48μs内提取该采样数据。并且,当检测到一个过零点时,电源周期处理程序为了在下一个电源周期之前完成执行操作,必须独占CPU资源。(电源周期处理程序将占用CPU运算能力的25%到30%。) 尽管RTOS可以满足这些要求,却不能最有效地利用资源。

其次,用于保存任务上下文的空间非常有限。大多数RTOS都要给每个任务提供一个完整的虚拟处理器,以在其中执行操作,而这需要保存各个任务的上下文。由于仅有256个16位字RAM可供使用,少量任务就会耗尽存储器空间。

所以,本参考设计选择了一个简单的任务轮。在这种配置方式下,任务会被按顺序调用,而每个任务在锁定事件发生时,都要释放CPU的控制权。锁定事件是指所有其它任务都必须等待的事件,它包括:从EEPROM中提取数据,等待一个电源周期或是等待通信通道上的字符。如果当前任务需要等待其它任务完成时才能结束自身任务,这时也会产生一个锁定事件。在任何锁定事件中,任务必须存储它的当前状态并返回任务轮。这种协作式多任务机制,使得一个处理能力相对低些的控制器就能够胜任工作。

任务间的通信是通过一组公共数据结构来完成的,这些数据结构要根据一套严格的规则才允许被修改。这些数据结构中最重要的部分是消息板,当发生某个事件时,一个任务要设置消息板中的一组数据位以通知另一个任务。例如,假设接收到一个消息并将其正确译码,则消息译码器任务会告知另一个需要该消息的任务(比如寄存器管理器)已经收到了消息,并要求第二个任务必须执行某些操作。

缺省任务列表

以下是参考设计中采用的缺省任务列表:

DSP:对应每个电源周期,这个程序会计算电力线路的所有参数,并累加本电源周期的用电量。

串口驱动器:检测两路通信通道的状态,并将第一个发出字符的通道置为“活动”通道。在消息检查器任务确定消息完成或产生超时之前,通道将始终保持活动状态。

消息检查器:验证输入字符串符合协议规范,并在完整接收消息后通知消息译码器。

消息译码器:解释接受到的消息并执行相应的请求操作。

异步事件管理器:执行那些不是按照时间表进行的事件任务,比如峰值检测和电能累计。

时段表管理器:周期性检查时钟,并按照时段表调整费率寄存器的值。
显示管理器:根据时间和其它事件刷新LCD显示。

消息格式器:为消息译码器解释的消息准备回复信息。

消息构建器:接收格式化后的消息并加上用于传输的消息头和消息尾。

寄存器管理器:执行读/写EEPROM操作。

计时管理器:通告按固定时基启动的任务。

负载曲线记录器:被请求时,向EEPROM记入用电量,便于将来报告这些数据。

添加任务

如电表参考设计中所定义,任务是一段单线程代码,它执行电表要求的某项功能,并快速(通常只有几毫秒)返回调用函数。然而,大多数任务都需要比这更长的时间才能完成。比如,在任何合理的速率下发送一个消息都需要多个周期。因此,大多数任务都需要一个状态变量,以便将其分解为数个子任务。

一旦任务编写完成,你就可以在spintaskwheel.c文件的任务列表中加入该调用。注意,你可以将任务加在执行流程的任何位置,并根据你的需要多次频繁调用它。你将发现,DSP任务调用非常频繁,串口驱动器SerialPortDriver任务也被调用了几次。因为要保持电能测量的完整性,DSP任务不允许被搁置数个周期,同时不允许SerialPortDriver任务错过输入字符。

最后,测试你的代码。任务轮循环时,你的新任务将伴随其它任务被调用。

全局变量

由于未使用真正意义上的多任务操作系统,也就意味着不会有编程人员所熟知的、真正意义上的消息传递、信号量或其它机制。通信是通过上文提到的消息板以及一组全局变量实现的,各个任务必须按照严格的规则来设置和读取这些变量信息。这些全局变量列举如下:

g_CommSystState: 这个变量包括一组通信通道控制位。具体来说,每个通道包括:一个active (活动)位,用于指明某个特定通道处于活动状态(从而可丢弃到达另一个通道的字符);一个TBE位,用于使闲置通道做好工作准备;以及一个data loss (数据丢失)位,当闲置通道收到字符而另一通道正忙于通信时,该位被置高。

g_TransmitByte; g_ReceiveByte: 分别保存着下一个要传送的字节和最新接收到的字节。

g_CommBuffer: 一个50字节数组,包含刚接收到的消息或要发送的消息。注意系统仅有一个通信缓存。它不仅被两个通信通道所共享,也被发送和接收通道所共享。

g_MeterAddress: 一个包含电表网络地址的6字节数组。初始化时从EEPROM内读取该信息,并存放在RAM中。

g_MessageFormatterData; g_DispFormatterData; g_ScheduleManagerData; g_AData; g_LCLRegData: 这些寄存器在寄存器管理器和各种任务间传送数据。例如,一个需要发送的寄存器内容,会被寄存器管理器放入g_MessageFormatterData中。

g_AEMRegisterNeeded; g_DispFormatterRegRequest; g_RequestScheduleManager; g_LCLRegRequest: 这些寄存器里,包含了特定任务需要读或写的寄存器。注意,消息译码器没有全局地址寄存器:寄存器管理器可以智能地从消息缓存中找出这个信息。

g_LCDMode: 包含显示器的模式字节。见下面的显示定制部分。

g_TariffInEffect: 包含当前有效的费率号码。这个函数有自己的全局变量,以便每次累计电能时,无需通过多次EEPROM读操作来确定将采样值存在什么位置。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭
临聘人员是什么意思 咽喉痒干咳吃什么药 喝什么汤下奶最快最多 七十岁老人装什么牙合适 禾五行属什么
bl是什么单位 孕妇有狐臭擦什么最好 县委办公室主任是什么级别 局限性是什么意思 男人为什么喜欢舔女人下面
53年属什么生肖 来月经头晕是什么原因 胖大海是什么 欣字属于五行属什么 cos是什么意思
女人能日到什么时候 额头容易出汗是什么原因 阉割什么意思 阴虚吃什么食物 今年农历是什么年
吃什么可以提高新陈代谢hcv8jop3ns3r.cn 女人身体发热预示什么hcv8jop4ns0r.cn 肾结石忌口什么hcv8jop8ns3r.cn 胆囊切除后吃什么好hcv8jop8ns6r.cn d表示什么hcv7jop6ns0r.cn
前列腺炎有些什么症状jinxinzhichuang.com 清炖牛肉放什么调料hcv8jop0ns4r.cn 药鱼用什么药效果最好hcv8jop1ns3r.cn 查艾滋病挂什么科hcv8jop0ns4r.cn 什么样的大便是正常的hcv8jop3ns9r.cn
眼白发青是什么原因helloaicloud.com 华山在什么地方hcv8jop1ns1r.cn 唵嘛呢叭咪吽什么意思hcv8jop5ns4r.cn 什么图强hcv8jop3ns3r.cn 乳糖不耐受喝什么奶粉hcv9jop5ns9r.cn
囊实性结节是什么意思hcv8jop6ns6r.cn 奇脉见于什么病hcv8jop7ns5r.cn 什么是芡实hcv9jop5ns0r.cn 口腔扁平苔藓是什么原因造成的hcv9jop1ns3r.cn 心悸是什么原因造成的呢luyiluode.com
百度