范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

嵌入式中自定义协议的一些典型例子

  关于自定义协议,对于会的人很简单,对于不会的人就摸不着头脑。下面分享一些关于自定义协议的笔记。
  什么是协议?
  协议这个概念我觉得挺杂的。就像嵌入式的概念一样,说法不一,比如大家常常争论FPGA是不是嵌入式、单片机是不是属于嵌入式等等。下面简单看一下嵌入式中协议这个概念。
  在互联网领域,协议常常指的是网络协议。
  在嵌入式中,协议按大类分主要可分为底层协议(硬件层协议/物理层协议)与上层协议(用户层协议应用层协议),根据实际还可细分成很多层。底层协议如串口等,底层协议决定着数据传输的方式(传输数据需要多少条信号线,传输数据的时序是怎样的)。上层协议决定着这些数据是拿来干什么用的。太难解释了…看实例吧:
  这是多功能电能表的协议通讯协议,其中底层协议是485通讯,上层协议有很多条,但格式基本都统一:
  每一帧(包)数据的格式都类似是这样子的格式,例如读数据协议:
  主站往从站发送数据(控制器->智能电表):
  从站往主站发送数据(智能电表->控制器):
  明确了协议之后,该发什么数据、收到的数据是怎么样我们都心里有数,那么这个通信的过程就很明朗了。一般控制器往外发送协议数据都比较简单,重点是返回数据的处理(解析),解析方式根据协议的不同而有不同的方法。
  协议(上层协议)按照通用性来分可以分为专有协议与自定义协议,例如上面电表的协议其实是专有协议(具有一些标准的协议):
  自定义协议就是我们开发者可以针对一些应用、一些需求自己制定的一些协议。下面来分享一些常见的自定义协议:常见的自定义协议
  在我们嵌入式开发中,自定义协议的应用很多。例如上下位机之间的通讯、控制器与控制器之间的通讯、服务器与设备终端之间的通讯等。自定义协议也没有什么特定的规范、标准,可以很灵活地制定,只要能满足开发需要即可。下面依旧以实例来做分享:
  例子一(典型):
  之前有个物联网项目,服务器往我们终端设备发送的协议数据类似于:
  我们设备终端需要用到协议数据中字段的实际数据,整个数据包是字符串的形式,这时候可以用sscanf函数来做解析:
  关于sscanf函数就不做解释了,不会的朋友自行百度。sscanf函数在做类似的解析非常好用,很多时候都可以使用。如:
  因为是两端通讯,当然要确保通讯的正确性。比如服务器往设备发送数据,怎么知道有没有发送,这就得设备端在收到数据的同时回应相应的数据包。可以使用与sscanf函数相对应的sprintf函数做组包操作。比如(这个sprintf例子与上例无关,只是为了说明一下sprintf的用法):
  一端给另一端发送数据一般有两种,以设备端在往服务端发送数据为例:
  (1)当设备收到服务端的数据时,会回应与之对应的数据,这称为被动应答。
  (2)设备主动给服务端发送数据,例如设备常常定时、主动地给服务端发送一些时间戳信息等(俗称心跳包),这样服务端就知道设备是在正常工作的(活着的状态)。这称为主动发送或主动申请。
  在处理这些字符串形式的协议数据的时候用sscanf、sprintf、strcmp、strstr、strcat等函数非常方便,有时候可以搭配正则表达式来做匹配。
  例子二(典型):
  之前有个项目需要从控制板显示主控制板的运行状态,两控制板之间使用的底层协议为485协议。上层协议(从控板接收数据协议)如:
  这里省略的部分为其他信息,比如整个数据包的长度等。
  解析函数如:
  这里的应用比较简单,只是解析一个报警信息来显示。有时候需要用到整个数据包里的数据,这时候我们可以建立一个结构体来保存所有我们需要的数据,这样方便我们清晰、有条理地对数据进行处理。例如:
  例子三(其它):
  上面的两个例子中的自定义协议是比较典型的、用得比较多的。下面也分享其它我自己的一些例子,很多时候为了满足我们自己通讯应用的需要,我们也会自己建立一些自己的小协议来满足我们的需求。
  (1)例子一
  之前使用串口屏与STM32通讯的时候,我们有制定一些对应的协议。
  为了让STM32能识别我串口屏不同页面发送的数据,必须要制定一条协议来识别页面:
  这样,每切换至不同的页面时,就会往STM32发送关于页面的协议数据,这样我们就可以知道当前处于哪个界面。
  为了让STM32能接收到正确的WiFi设置信息(如何区分WiFi名与密码),必须要给WiFi信息添加一些辅助协议数据,如:
  相应的解析处理函数:
  (2)例子二
  之前在一个单相用电器监测的应用中,有用到zigbee无线通讯,即其中一块控制板做采集板。另一块控制板做显示板,有些朋友可能会有疑问为什么不做在同一块板上?其实这是一道全国大学生电赛题,我们只是根据题目要求来做的:
  我们当时在做这个通讯时也是有制定一个简单的协议,在数据前面加个标识,就像JSON格式数据的键值对。
  我们制定的协议如:
  相应的解析及结果:
  类似这样子的协议解析实际上是有套路的,摸清楚这些套路之后以后在做类似应用的时候其实就很简单了。重点掌握sscanf、sprintf、strcmp、strstr、strcat等函数以及上面的两种典型例子。小编在三个地方搬过砖,每个地方都有用到类似的自定义协议,而且都形成专门的协议文档,每次做类似通讯类的应用的时候,都会按照这样已份协议文档来修改以适应不同的项目。
  以上就是本次分享的关于嵌入式中自定义协议的一些笔记,希望各位看官喜欢。如有错误,欢迎指出,谢谢!

传音新机在海外发布!内置7000mAh超大电池,外观很炫酷在国内市场很多用户都没有听过传音这个品牌,但在海外市场传音可以说是名声大噪,尤其是在印度市场,传音手机可以说是家喻户晓的存在,而近日,传音也在印度发布了一款新机,吸引了很多用户的关我的炒币经历耐得住寂寞,方成大器真正笑到最后的一定是那些能够忍受孤独和长期持有金钱的人2013年,他开始接触虚拟货币。当时比特币1000涨到了40万,他觉得区块链的未来发展非常好。他买了100个比特币来购买黄金价新手做电商这些类目别做新手朋友一开始做电商,选品上肯定没有什么很大的头绪和方向,随便乱选,这个最好别,有很多类目新手朋友不太推荐,我整理了几个新手做电商最好不要碰的类目,可以看看,作为借鉴!第一个男装男刀片电池供货特斯拉衣锦还乡落户安徽无为比亚迪动力电池持续扩产财联社(北京,记者徐昊)讯,整车领域向内求发展动力电池领域向外求扩张,或已成为比亚迪搏击全球电动化大潮的一条既定路径。8月5日,财联社记者从多位知情人士处获悉,比亚迪即将于明年第二腾讯处罚多个播放器?国家现已介入其中,价值千亿企业将解散文林飞飞随着智能化,互联网话的不断发展,我们的生活品质也在不断上升,以前人们听音乐,需要去外面专门的光碟店买专门的光碟在家放,还需要专门的放碟设备,而且价格不菲,现在时代进步了,听芯片研发烧钱游戏,芯片研发为何如此烧钱,三大厂商还能坚持?从上个世纪开始到2010年,关于晶体管的缩小工程创新方面基本上不到两年就能让计算机芯片上的晶体管数量翻倍,摩尔定律引领着芯片的研发进度提高。从28nm到12nm,10nm7nm5n荣耀最强中端机X20荣耀最近马上又要上一款以往最畅销的X系列产品,荣耀X20,该产品采用后置3摄组合,分别为6400万主摄,200万超广角,200万微距,前置1600万摄像头。电池方面,4300mAh腾讯还能吃微信老本多久?曾几何时,网络社交这个词离我们还很遥远。有一天,一个小企鹅闯入我们的世界,从此我们开启了网络社交的第一步。从QQ到微信是大多数人都会经历的过程。按照大多数人的情况,一般是学生时代用直屏高占比,充电超级快,荣耀X20抢鲜体验按照荣耀系列手机发布的习惯,荣耀X20SE发布不久后,荣耀X20将会亮相,主打高屏占比超级快充的荣耀X系列,在此次的荣耀X20上得以体现,在当下同价位的直屏手机中,荣耀X20的屏占荣耀60Pro来了,5300mAh2亿大像素100W,配置应有尽有大家都知道荣耀最初只是华为的一个系列,而非一个品牌华为创立荣耀之初是为了应对小米旗下的红米,但因为一系列的原因,一年后华为将荣耀出售,荣耀品牌才正式成立,目标也不再是红米,而是整个挑战用户底线,荣耀Play5TPro被称为新一代圾皇最近大家都将目光放在了即将发布的荣耀Magic3系列上,没想到荣耀还悄然上架了一款荣耀Play5TPro。这款新机的外观设计像模像样,但硬件配置却不经打。被网友戏称为新一代圾皇,我
斯凯孚中国与中广核新能源携手助力碳中和建立多元清洁的能源供应体系,持续提高能源利用率对于我国整体实现碳中和碳达峰目标至关重要。十四五期间,为实现能源绿色低碳转型的战略目标,发展可再生能源已被确定为主导方向,预计我国可再上海电气集团与中国进出口银行达成战略合作协议7月16日下午,上海电气集团与中国进出口银行上海分行制造业专项合作协议签约仪式在上海电气集团会议中心举行。上海电气集团党委书记董事长郑建华,中国进出口银行上海分行党委书记行长王须国科学出版社和航天云网在京举行战略签约仪式近日,中国科技出版传媒股份有限公司(以下简称科学出版社)与航天云网公司在北京举行战略合作签约仪式。科学出版社党委书记社长林鹏,总编辑李锋,董事会秘书张凡,职教中心副总编上官子健,航杭氧牵手浙江中控,推动数字化智能化发展7月16日,杭氧与浙江中控战略合作框架协议签约仪式在杭氧临安制造基地举行。公司领导蒋明毛绍融郑伟莫兆洋韩一松黄安庭,与浙江中控集团创始人褚健董事长兼总裁崔山高级副总裁俞海斌副总裁郭海上巨无霸!世界最大亚洲首座海上换流站发运近日,中国能建参建的世界最大亚洲首座海上换流站三峡如东海上换流站,从江苏南通的长江岸边出发,将运抵如东海上风电项目现场进行安装。发运现场三峡如东海上换流站,是目前世界容量最大电压等太重集团与太原理工大学签署战略合作协议7月27日,太重集团公司与太原理工大学签署战略合作协议。集团公司党委书记董事长韩珍堂和中国工程院院士太原理工大学校长黄庆学出席仪式并讲话。公司党委副书记副董事长总经理陶家晋与太原理陕鼓集团与陕建控股集团签订深化战略合作协议7月30日,陕鼓集团与陕建控股集团签订了深化战略合作协议。双方将围绕战略目标和发展需求,共享资源,强强联合,实现全面合作,打造国企合作新典范,共同迈向国际一流强企。全国政协委员,陕斯凯孚中国与顺丰集团签署全面合作协议7月21日,斯凯孚中国与顺丰集团签署了全面合作协议。斯凯孚集团高级副总裁亚洲区总裁唐裕荣,顺丰集团副总裁徐前正式签约为双方全面合作的里程碑拉开了序幕。斯凯孚中国区副总裁芮晴Davi防范道路次生灾害中国电科探地雷达综合检测车赶赴灾区做CT7月20日以来,河南郑州持续遭遇极端特大暴雨,大量积水导致路面下方出现空洞和疏松地带,造成了道路塌陷,极易引发次生灾害。开展道路隐患抢险救灾工作刻不容缓。中国电科22所虽自身地处新两台济南造盾构机顺利通过云验收8月13日,济南重工生产的390号392号盾构机顺利通过云验收,将用于广州地铁10号线东湖站滨江东路站区间施工。受疫情影响,本次验收采用线上验收方式,验收组专家通过视频连线方式对盾兰石重装炼化公司顺利完成兰州石化聚合反应器环管煨制近日,兰石重装炼化公司承制的兰州石化3。5万吨年特种丁腈橡胶装置项目10台聚合反应器环管煨制顺利完成,为后序组装焊接奠定了基础。该聚合反应器属于精细化工核心设备,内部含有大量环管组