焖是什么意思| 腿抽筋什么原因| 手脚出汗多是什么原因| 羹是什么意思| 生长因子是什么| 心跳过快是什么原因| 公分是什么意思| 冰岛说什么语言| 黑海为什么叫黑海| 598是什么意思| 考是什么意思| 余田是什么字| 肚子里的蛔虫是什么意思| 吃什么能让月经量增多| 老打喷嚏是什么原因| 为什么手上会起小水泡| gmp是什么| 黑裙配什么颜色的上衣| 什么是gsp| 飘雪是什么茶| 学架子鼓有什么好处| 丁火是什么意思| 什么的爬| 地瓜是什么| 什么学步| 女为什么字| 降钙素原是什么意思| 并发症是什么意思| 猪与什么属相相冲| 糖尿病早餐吃什么好| 巨蟹是什么星座| 扁平疣是什么样子图片| 苏武牧羊是什么意思| 预防脑梗用什么药效果好| 韭菜炒什么好吃| 什么是胆囊炎| 家是什么| 急性腮腺炎吃什么药| 老年人脚肿什么原因| sara是什么意思| 淋巴细胞降低说明什么| 寒疾现代叫什么病| 高尿酸血症吃什么药| 补肾最好的药是什么药| 牛肉不能和什么食物一起吃| luxury是什么牌子| 耳门有痣代表什么| 三年级用什么笔| 皮革胃是什么意思| 布克兄弟什么档次| 告示是什么意思| 0tc是什么意思| 梦见小男孩是什么预兆| 上面一个山下面一个今读什么| 脾虚可以吃什么水果| 来大姨妈吃什么对身体好| 提高免疫力吃什么维生素| 一什么白菜| 急性腹泻拉水吃什么药| 嘴唇是紫色的是什么原因| item什么意思| 1960属什么生肖| 女生排卵是什么意思| 木圣念什么| 三岁打什么疫苗| 血糖高对身体有什么危害| 耳朵老是痒是什么原因| 农历七月二十什么日子| 手脱皮用什么药膏| 露酒是什么意思| 庚子是什么时辰| 方脸适合什么发型| 上技校学什么专业好| 珍珠龟吃什么| 湿热吃什么中成药| 视线模糊是什么原因| 前列腺增大是什么原因| 木灵念什么| 呼吸音粗是什么原因| 男人占有欲强说明什么| 98年虎是什么命| 肺炎吃什么药好| 栀子有什么功效| 乳腺4a是什么意思| 梦见摘瓜是什么意思啊| 老登是什么意思| 头发麻是什么原因| 导弹是什么意思| 额头反复长痘是什么原因| 什么情况要打破伤风| 恐惧症吃什么药最好| 7月20号是什么星座| 妈妈的弟弟的老婆叫什么| 为什么空腹喝牛奶会拉肚子| 白醋洗脸有什么效果| 慢阻肺是什么意思| 痘痘肌肤适合用什么牌子的护肤品| 什么不什么当| 猫哭了代表什么预兆| 误区是什么意思| 肠易激综合征吃什么药好| 维生素b族有什么用| 晚上睡不着是什么原因| 女性私处为什么会变黑| 饮什么止渴| 鹿茸是鹿的什么部位| 沙漠玫瑰什么时候开花| 腹泻输液用什么药| 3月17日是什么星座| 茶叶渣属于什么垃圾| 海南的海是什么海| 什么叫单亲家庭| 飞蚊症用什么药物治疗最好| 放飞自我是什么意思| 鼻炎和鼻窦炎有什么区别| 一什么三什么的成语| 素女经是什么| 钙化灶是什么意思| 晚上9点到11点是什么时辰| 象牙白适合什么肤色| 尿的颜色有点红褐色是什么原因| 激素水平是什么意思| 微不足道的意思是什么| 血铅是什么| 1月出生是什么星座| 壬水命是什么意思| 不打破伤风针会有什么后果| 保妇康栓是治疗什么的| 流量加油包是什么意思| 中老年补钙吃什么钙片好| 尤文氏肉瘤是什么病| 脑白质脱髓鞘吃什么药| 玄关什么意思| 究竟涅盘是什么意思| 桑蚕丝用什么洗最好| cro是什么职位| 6.15是什么星座| 纤维硬结灶是什么意思| 乌冬面是什么做的| 这是什么虫子| 叉烧炒什么菜好吃| 相向而行什么意思| 卫生纸属于什么垃圾| 阴道出血用什么药| 一直打嗝是什么原因| 焦糖色配什么颜色好看| 睡衣什么面料最好| 白酒不能和什么一起吃| 曹字五行属什么| 梦见小麦粒是什么意思| rm是什么意思| 王加玉念什么| 为什么脸上长痣越来越多| 糖类抗原ca125偏高是什么原因| 桑葚什么时候成熟| 什么是湿热| 龙涎香是什么东西| 血糖高有什么危害| 小五行属性是什么| 紫外线过敏用什么药| 什么是情劫| 朗朗乾坤下一句是什么| 什么牌子的洗发水好| 喉咙里的小肉球叫什么| 姨太太是什么意思| 压力与什么有关| 低头什么节| 腋臭和狐臭有什么区别| 农历10月24日是什么星座| 风调雨顺的下联是什么| 猪肝炒什么好吃| 长残了是什么意思| 生精补精吃什么药最快| 狮子座女和什么座最配| 心率过快吃什么药好| 血脂高胆固醇高吃什么食物最好| 想要什么样的爱| 233是什么意思啊| 2月1日什么星座| 文心什么字| 名称是什么意思| 睡眠不好吃什么药最有效| 见风使舵是什么生肖| AB型血型有什么优势| 三个龙是什么字| 喝菊花水有什么好处| 荷兰猪是什么动物| fila是什么牌子| 宝珀手表属于什么档次| 什么是1型和2型糖尿病| 星期天左眼皮跳是什么预兆| 急性肠胃炎用什么药| 肚脐眼中间疼是什么原因| 什么时候闰十二月| 舌尖发麻是什么病的前兆| 肝不好的人有什么症状| 什么狗最贵| 左右逢源是什么生肖| rgp是什么| e抗原阳性是什么意思| 纪是什么意思| 女汉子什么意思| 香茅是什么东西| 胡桃木色是什么颜色| 一字千金是什么生肖| 人参果吃了有什么好处| 眼睛不舒服是什么原因引起的| dsa检查是什么意思| 糖链抗原高是什么原因| 沈字五行属什么| 左手发麻什么原因| 生肉是什么意思| 脚踝肿挂什么科| 幻觉妄想状态是什么病| 三和大神是什么意思| 狗代表什么数字| 头皮屑是什么东西| 什么是鼻息肉| 石斛念什么| 上嘴唇上有痣代表什么| 鸡毛菜是什么菜| 女人在什么时候最容易怀孕| hla是什么意思| 人为什么会变| espresso是什么咖啡| 空调综合征有什么症状| 桃胶有什么功效与作用| 姜对头发有什么作用| 吃维生素b6有什么好处和副作用| 触感是什么意思| 沧海桑田什么意思| 有待提高是什么意思| 早上五点是什么时辰| 减肥吃什么药| PSV是什么意思| 花木兰代表什么生肖| 阿堵物是什么意思| 7月16号是什么星座| 做ct挂什么科| 头痛什么原因| 胆固醇高吃什么可以降下来| 大连是什么海| 芬太尼是什么药| 输液葡萄糖有什么作用| 万象更新是什么生肖| 备孕不应该吃什么| 鸡打瞌睡吃什么药| 什么牌子手机好| 孔雀的尾巴有什么作用| 吸顶灯什么牌子的好| 孟子名什么| 7月17日什么星座| 七月十六号是什么星座| 为什么不建议做肠镜| 什么桂什么香| 李白字什么| 胎心停了会有什么症状| 封神榜是什么意思| 一级警长是什么级别| 拎不清是什么意思| 尿毒症能吃什么水果| 为什么怀孕了就不来月经了| on是什么牌子| 总警监是什么级别| 百度

基于VxWorks下的多重定时器设计

嵌入式系统 时间:2025-08-05来源:网络
百度 因此,中国城镇化就面临着三个问题:过去30年中国土地城镇化的速度快于人口城镇化的速度、人口主要向大城市流向、城市群快速涌现。

VxWorks是一种嵌入式实时操作系统(RTOS),具有内核小、可裁剪、实时性强等特点。VxWorks内核(Wind)提供了共享内存、信号量、消息队列、套接字通信和定时器等多种机制。为了实现基于UDP网络的可靠通信,本文利用VxWorks的多种任务间通信机制和看门狗定时器机制,设计了一种多重定时器模型,该模型可以确保数据包的可靠传递。


1 VxWOrks的时钟及定时器机制
1.1 VxWorks延时函数
VxWorks既提供了延时功能,也提供了时限约束功能。VxWorks系统有2种延时方式:一种是Wind内核提供的taskDelay()函数;另一种是POSIX函数nanosleep()。
taskDelay()函数以tick作为延时单位,默认情况下1个tick为16.67 ms(1/60 s),可以通过调用sysClkRateSet()函数对tick进行重新设定。taskDelay()函数使调用该函数的任务在指定时间内主动放弃CPU,用于任务调度或等待某一外部事件。nanosleep()函数指定一个以s和ns为单位的睡眠或延时时间。其实,两个延时函数的精度是相同的,都是以tick为时间基准。不同之处在于,taskDelay(0)有自身意义,用于相同优先级任务间的任务调度,而nanosleep(0)是没有意义的。
1.2 VxWorks定时器机制
VxWorks提供一种看门狗定时器机制(watchdogtimer),可以用来处理任务的时限约束。看门狗定时器作为系统时钟中断服务程序的一部分来维护,因此,看门狗定时器的回调函数以系统时钟中断级作为中断服务程序执行。看门狗定时器回调函数受到中断服务程序的限制,不能调用可能引起阻塞的函数,比如试图获取信号量,调用malloc()和free()等创建和释放内存函数或执行I/O操作。
POSIX定时器也可以处理任务时限。此外,VxWorks中一些函数具有时限控制的功能,semTake()、msgQSend()、msgQReceive()函数中都有设定时限控制的参数。超时参数NO_WAIT意味着立即返回,而WAIT_FOREVER意味着程序永不超时。


2 多重定时器实现要求
在VxWorks系统下,利用网络套接字建立基于UDP协议的客户端/服务器通信模式。由于UDP是无连接的协议,发送方并不清楚发出的数据包是否已经正确到达接收方,于是提出一种支持重传和定时等待确认的协议。
这个协议要求发送方发送的数据包与接收方回复的确认包具有对应的序列号,发送方和接收方都可以通过序列号来判断是不是想要得到的数据包。序列号是循环的,考虑到如果序列号太小会出现折返情况产生混淆,所以序列号至少大于2。如果用1个字节来表示序列号,则可以设定序列号为256。
发送方送出一个数据包后启动一个定时器。这时可能会有4种情况发生:
①发送方接收到正确序号的确认包,则发送下一序列号的数据包。
②发送方接收到已经接收过的重复确认包,则丢弃该确认包继续等待。如果在超时前收到了正确确认包,则发送下一序列号的数据包。
③定时器超时,没有收到想要的确认包,则重新发送数据包,启动下一定时器。
④设定的多重定时器超时后,没有收到想要确认包,则通知网络管理设备。
接收方在收到所需序列号的数据包后,回复一个确认包给发送方。如果接收方回复的确认包后没有正确到达发送方,则会引起发送方超时,重新发送原序列号数据包。接收方收到数据包后,需要检查数据包序列号。如果是重复序列号数据包,则丢弃,但是依旧回复确认包给发送方,以免已发送确认包在发送过程中丢失。这里基于支持重传和定时等待确认协议。具体要求是,在客户端通过UDP协议发送数据包后启动一个定时器,等待接收服务器端回复的ACK(acknowl-edgement)确认包。如果成功接收,则继续发送下一序列号的数据包;如果超时后还没有收到需要的确认包,则重新传输原序列号的数据包。图1所示为数据包均按时、正确地接收的情况。

一般情况下,假定启动定时器30 ms内可以完成从发送数据包到接收ACK确认包的全过程,但是由于某些原因使得30 ms内无法收到确认包,则会重传原数据包,并启动一个稍长的40 ms定时器。如果40 ms还无法收到确认,则再次重传原数据包,并启动一个考虑到最差情况的60 ms定时器。如果依旧无法收到确认则不再发送,通知网络管理设备。
出现定时器超时情况有3种可能:发送方发送数据包过程中丢包;接收方发送确认包过程中丢包;从发送数据包到确认包到达发送方过程中,延时时间超过定时时间。造成超时有两方面原因:一是,双方终端在接收数据包时由于缓冲问题不能及时处理,使得终端出现延时接收数据包或丢包;二是,通信链路发生断链情况,导致双方无法进行通信。从图2中可以看到,如果链路没有断开,则包含3种情况的三重定时器超时情况。


3 多重定时器设计
3.1 设计方案
选用看门狗定时器机制来设计。看门狗定时器操作较为简单,只有4个函数,即wdCreate()、wdDelete()、wdStart()、wdCancel()。看门狗定时器与调用任务异步执行,并不阻塞调用任务,所以看门狗定时器很适合多任务的非阻塞计时。
当看门狗定时器启动后,如果在规定的30 ms内收到了正确的确认包,就会将定时器取消掉,继续发送下面的数据包。如果30 ms规定时间内没有收到确认数据包ACK,则需要重新发送数据包,并启动第2个40 ms的定时器。VxWorks中单CPU的任务间常用通信机制是消息队列。当定时器到时后利用消息队列向发送任务发送消息,通知发送任务重新发送数据包,启动下一定时器。看门狗定时器的回调函数可以执行msgQSend()这种向消息队列发送消息的函数,我们通过msgQSend()函数向主任务发送时限已达消息。但是,将msgQSend()的延时参数设为wAIT_FOREVER时,消息队列中一旦没有了可用缓冲,则进入等待状态。由于中断服务程序优先级高,而从消息队列中接收消息的优先级低,当有任务准备从消息队列中取消息时,要等待中断服务程序执行完毕,则消息队列始终处于已满状态,造成系统死锁。如果将msgQSend()函数中的延时参数改为NO_WAIT,则可避免一直等待向消息队列发消息的情况,一旦消息队列已满就将该消息丢弃。但这样一来,向接收端发送数据包任务接收不到定时器超时消息,不会重发原序列号数据包和启动下一定时器,所以使用参数NO_WAIT也不可行。

这里提出一种避免上述情况造成系统死锁的方法,即使用信号量机制来使msgQSend()不在中断服务程序中执行。通过使用信号量的任务间同步机制来实现这个功能。释放信号量函数semGive()不像msgQSend()那样需要在消息队列中等待,一旦执行就可以马上释放信号量,从而避免了冲突。
由于任务中事件发生有一定间隔,不必选用计数器信号量,所以选用最常用的二进制信号量。首先建立3个先进先出的二进制信号量,设定可调用信号量为空。然后在看门狗定时器的回调函数中使用semGive()函数来释放信号量,重建一个任务在任务起始使用semTake()函数来获取信号量。当获得信号量后,通过msgQSend(,,,WAIT_FOREVER,)函数向消息队列中发送超时消息,而且保证只要消息队列有可用缓冲,就一定可以将消息送出。本文给出一个多重定时器的任务框架,如图3所示。

1 2

关键词: 设计 定时器 多重 VxWorks 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版
肿瘤是什么意思 里字五行属什么 十年结婚是什么婚 neo什么意思 为什么会胃疼
日柱将星是什么意思 gf是什么单位 卡西欧手表什么档次 高姿属于什么档次 心肌梗塞是什么原因造成的
胃疼看病挂什么科 梦见离家出走是什么意思 清奇是什么意思 1是什么数 凌空什么什么
入职体检70元一般检查什么 清肺火肺热吃什么药最有效 王加几念什么 脚后跟麻木是什么原因 白泽长什么样
与什么隔什么hcv8jop2ns0r.cn 蔡英文是什么党hcv9jop7ns2r.cn 妃子笑是什么茶hcv8jop3ns3r.cn 西游记是一部什么小说hcv9jop5ns3r.cn 痤疮用什么药hcv8jop7ns3r.cn
什么人不适合艾灸hcv8jop6ns9r.cn 声字五行属什么hcv8jop8ns0r.cn 结婚40年是什么婚hcv8jop7ns5r.cn 瘦西湖为什么叫瘦西湖hcv9jop0ns9r.cn quest是什么车1949doufunao.com
什么什么有力hcv9jop8ns2r.cn 植物都有什么hcv7jop9ns9r.cn 感性是什么意思sanhestory.com 唐人是什么意思hcv8jop8ns4r.cn 眼睛为什么会长麦粒肿hcv8jop6ns8r.cn
吃什么提高免疫力和增强体质tiangongnft.com 7月6日是什么星座hcv8jop5ns9r.cn 雍正叫什么名字hcv7jop6ns5r.cn 花洒不出水什么原因hcv9jop4ns7r.cn 维生素d什么时候吃hcv9jop7ns2r.cn
百度