嵌入式需要学什么?嵌入式需要学哪些课程和内容?

嵌入式需要学什么?嵌入式需要学哪些课程和内容?,第1张

11 有哪些设备使用单片机或Linux

所有的电子产品,所用技术都可以认为要么是单片机,要么是Linux;GUI方面主要是QT/Android,它们都是运行于Linux之上的。我们说的单片机不使用 *** 作系统,但是使用单片机设备肯定远远超过Linux。很多人也是先学习单片机,从单片机进入电子工程师行业,日常生活中,有哪些产品使用单片机、Linux呢?下面举一些例子:

我们设计一个产品时,是使用单片机还是Linux,取决于成本:硬件成本、软件成本、维护成本、升级成本。而不应该根据个人偏好来选择:我喜欢单片机,所以就排斥使用Linux;我喜欢Linux,就排斥使用单片机。为了有更多的选择,我们需要既懂单片机,又懂Linux。

12 在硬件 *** 作上单片机和Linux是类似的

以点灯为例,
无论是单片机还是Linux,我们要做的事情都一样:

看原理图,确定引脚是哪一个,确定它输出什么电平才可以

看芯片手册,确定要怎么 *** 作寄存器

写程序

但是,怎么编写程序,单片机和Linux有很大不同。

13 在单片机中点灯、使用LCD

使用单片机开发程序时,我们一上来就写一个main函数,下面是一些简化的代码:

LED程序里面的init_led、led_on、led_off函数是你一个人写的,爱取什么名就取什么名,爱怎么写就怎么写。

LCD程序里的函数也是你写的,完全是自由发挥。

很多单片机项目不是很复杂,2、3个人从上到下统统搞定,里面的函数大多时间是直接去读写寄存器。

很多单片机项目严重依赖于硬件,换一个芯片后怎么办?重写一套代码呗。

在单片机程序里,没有应用程序、驱动程序的概念,很可能一个人包揽了硬件设计、模块调试(或称之为驱动)、功能开发(或称之为应用)的全部活。

14 在Linux中点灯、使用LCD

在Linux中,不允许应用开发人员直接去 *** 作硬件,比如你想点个灯,不好意思,你无法直接访问寄存器;你需要通过驱动程序来访问寄存器。

为什么?有几大原因:

Linux系统中运行着众多程序,必须保证质量差的程序无法破坏系统:假设你写的程序比较烂,那我不能让你去随便访问寄存器,把系统搞崩溃了怎么办?你本意是去点灯,但是你看错了寄存器,你把电源关了怎么办?所以这些 *** 作硬件的活,还是交给信得过的人来做吧:交给驱动工程师,他既懂硬件又懂软件。

保证程序的可移植性:编写应用程序时,大家都使用统一的函数,以后换一个芯片时,应用程序不用变;只需要根据这个接口提供驱动程序就可以了。

团队协作:使用Linux系统的项目一般比较大,术业有专攻,一个人不太可能从上到下都全部掌握。比如做人脸识别项目,有擅长做图像处理的,他可不管你要用多少种摄像头,有图像给他就可以。而多种摄像头的硬件 *** 作方法各有不同,这些交给驱动程序工程师。

所以,在Linux中应用程序和驱动程序是分开的。

以LED、LCD程序为例,简化的代码如下

也许你已经大概猜出来了,应用程序怎么调用驱动程序?通过标准的接口:

open:打开驱动程序。

read/write:读、写数据。

ioctl:传入各种参数,获得各种参数。

mmap:内存映射,比如映射之后,应用程序可以直接读写LCD的显存。

你看!从这些接口里,我们根本看不到寄存器的 *** 作。底层的程序驱动会根据这些调用,去设置寄存器、 *** 作硬件。

所以,我高大上的应用工程师,干嘛苦哈哈地去看原理图、看在片手册、读写寄存器,搞不好还要去调试硬件BUG。这些脏活、累活就交给驱动工程师吧。客户的需求千变万化,我996时间都不够用了。

我上懂软件、下懂硬件的驱动工程师,肯定不能把这么重要的活交给你去做了,把我的系统搞崩溃了怎么办。

开玩笑、开玩笑、开玩笑的,有应用工程师、驱动工程师的优劣之分,大家都是为了做出产品。现在有一个趋势,一个任务从上到下你都需要懂,这就是所谓的全栈工程师。

还是以LED为例,应用程序和驱动程序的协作如下图所示:

在Linux中,“一切皆文件”,要访问某个硬件,也是要打开文件、读写文件。应用程序要根据标准的文件接口:open/read/write/ioctl/mmap等来访问驱动程序。

既然如此,怎么写驱动程序呢?最简单的方法就是:APP要调用open来打开驱动程序,那驱动‘程序里就提供一个xxx_open函数来初始化硬件;APP要调用write来写数据,驱动程序里就提供一个xxx_write函数来接收数据并 *** 作硬件。

用xxx_open、xxx_write来构成一个驱动程序,这就是驱动框架。

怎么实现这些xxx_open、xxx_write函数?我们要做的事情跟单片机是类似的,一样要去看电路图、看芯片手册,然后在这些函数里读写寄存器:这称为硬件 *** 作。

所以,Linux驱动程序= 驱动框架 + 硬件 *** 作。

有单片机基础的人,对硬件 *** 作比较熟悉了,把重点放在驱动框架上就可以。

高能预警:驱动框架可不简单,对于LED来说是简单,但是还有更复杂的驱动程序,它要考虑“通用”,这很要命。

第2章 嵌入式Linux快速入门

这几天在群里跟学员聊天,有一位学员的学习方法很好:先观其广,再究其深。有时候要“不求甚解”,很多时候保持疑问先学下去,这些疑问就自然解决了。

比如课程中涉及汇编知识,如果你要彻底弄清楚,你需要去学习《ARM架构与编程》;当你学完这本书,你的同学搞不好已经可以上手工作了。

21 短期的目标是什么

我们先把学习目标定下来:快速了解嵌入式Linux开发的流程,知道要学什么,具备跟从业者交流的能力。

22 一个嵌入式Linux系统的组成

下面我们用类比和逻辑推导出嵌入式Linux系统的组成,没错,“推导”。
从上图可以知道:

组成:嵌入式Linux系统= bootloader + linux内核 + 根文件系统(里面含有APP)。

bootloader:它的目的是启动内核,去哪等读内核?读到哪里?去Flash等外设读内核,存到内存里去。所以需要有Flash里外设的驱动能力,为了调试方便还会有网络功能。所以,可以认为 booloader = 裸机集合,它就是一个复杂的单片机程序。

Linux内核:Linux内核的最主要目的是去启动APP,APP保存在哪里?保存在“根文件系统”里。“根文件系统”又保存在哪里?在Flash、SD卡等设备里,甚至可能在网络上。所以Linux内核要有这些Flash、SD卡里设备的驱动能力。

不仅如此,Linux内核还有进程调度能力、内存管理等功能。

所以:Linux内核 = 驱动集合 + 进程调度 + 内存管理等。

23 要学习bootloader吗

Bootloader有很多种,常用的叫u-boot。

在实际工作中,对于u-boot基本上是修修改改,甚至不改。但是u-boot本身是很复杂的,比如为了便于调试,它支持网络功能;有些内核是保存在FAT32分区里,于是它要能解析FAT32分区,读FAT32分区的文件。

花那么多精力去学习u-boot,但是工作中基本用不到,这对初学者很不友善。

所以,对于初学者,我建议:理解u-boot的作用、会使用u-boot的命令,这就可以了。

如果你的工作就是修改、完善bootloader,那么再去研究它吧。

24 要学习Linux内核、要学习驱动程序吗

之前我们说过Linux内核 = 驱动集合 + 进程调度 + 内存管理等,如果要学习Linux内核,从驱动程序入手是一个好办法。

但是人人都要学习Linux内核、人人都要学习Linux驱动吗?显然不是。

作为初学者,懂几个简单的驱动程序,有利于工作交流;理解中断、进程、线程的概念,无论是对驱动开发、应用程序开发,都是很有好处的。

所以对于初学者,建议前期只学习这几个驱动:LED、按键、中断。

LED驱动程序:这是最简单的驱动程序。

按键驱动程序:它也比较简单,从它引入“中断”。

中断:从“中断”它可以引入:休眠-唤醒、进程/线程、POLL机制、异步通知等概念。这些概念无论是对驱动开发,还是对应用开发,都很重要。

所以,对于初学者,我建议必须学习这几个驱动:LED、按键、中断。

入门之后,如果你想从事内核开发、驱动开发,那么可以去钻研几个驱动程序(输入系统、I2C总线、SPI总线等),掌握若干个大型驱动程序后,你对内核的套路就有所了解了,再去研究其他部分(比如进程管理、文件系统)时你会发现套路是如此通用。

摄像头(VL42)、声卡ALSA驱动是Linux中比较复杂的2类驱动,它们是很难的,如果工作与此相关再去研究。

25,要学习Linux应用程序吗?先学一些基础技能

要学,即使以后你只想研究内核,一些基本的应用开发编写能力也是需要的:

基本设备的访问,比如LCD、输入设备

进程、线程、进程通信、线程同步与互斥

休眠-唤醒、POLL机制、信号

网络编程

①②③部分的知识,跟驱动有密切的关系,它们是相辅相承的。

掌握了基本驱动开发能力、基本应用开发能力之后,在工作中你就可以跟别人友好沟通了,不至于一脸懵逼。

26,应用程序是怎么启动的?要了解一下根文件系统

你辛辛苦苦写出了应用程序,怎么把它放到板子上,让它开机就自动启动?

你写的程序,它依赖于哪些库,这些库放到板子上哪个目录?

怎么做一个可升级的系统?即使升级中途断电了,也要保证程序至少还可以运行老的版本?

这些都需要我们了解一下根文件系统。

先了解一下init进程:它要读取配置文件,根据配置文件启动各个APP。

了解了init进程,你就了解了根文件系统的组成,就可以随心所欲裁剪系统,为你的项目制作出最精简的系统。

第3章 学习方法

31 先不要打破砂锅问到底

嵌入式涉及的东西太多太杂了,如果心里没有主线,碰到什么都要去研究个透彻,最终反而忘记自己要学什么了。

嵌入式涉及硬件知识、软件知识,软件里涉及汇编、ARM架构、C语言、Makefile、Shell;又分为bootloader、内核、驱动、基本的APP、GUI。

比如我们会用到Makefile,了解它的基本规则,会用我们提供的Makefile就可以。

不需要深入研究那些make函数,因为在工作中都有现成的Makefile给你使用,不需要自己去编写一套Makefile。何必花上好几天去深入研究它呢?

比如我们会用到bootloader,难道又要花上几个月来深入研究u-boot吗?工作中基本不需要改u-boot,会用那几个命令就可以。

甚至有些学员先去买本shell的书来学习shell命令,何必?我们在视频中用到什么命令,你不懂时再去百度一下这些命令就可以了。

不要脱离初学者的主线:应用基础、驱动基础。有了这2个基础后,你想深入研究某部分时,再去花时间吧。

32 思路要清晰,不怕抄代码

视频里的代码,请你一定要自己去写一次、写多次。为什么我现在写驱动那么熟?我2009年在华清远见上课时,

每次上课我都要给学生写一次那些驱动,十几次下来闭着眼睛都知道内核的套路了。

记不住那些函数?我也记不住,我都是去参考同类的驱动程序,这又不是闭卷考试。

但是要理清楚思路,你写这个程序要完成什么功能、怎么实现这些功能?这个要弄清楚。

有了思路后再写代码,不知道怎么写?没关系,看看视频,看看示例,然后关闭视频看看能否自己写出来。

33 对自己的方向很了解,我只能带你到这里了

我的专长是 *** 作系统,是快速地带领大家掌握一些项目开发的基础知识。

如果你决定深入研究某方面时,我并不能带你多久。你要去看源码,去看这方面的专业书籍。

比如想深入钻研内核的内存管理时,它有页表映射(你需要阅读ARM架构的手册)、SLAB分配器、vmalloc/malloc实现、mmap实现、缺页中断、父进程子进程之间的页面管理等等,内容非常多。有时候连书籍都没有,你需要直接啃代码。

当你想从事某个行业时,就需要深入研究行业相关的知识。

比如CAN总线,它可以写成一本书:CAN协议、CAN报文、Socket CAN、车身网络拓扑结构,CAN应用报文,CAN网络管理报文,CAN诊断报文。

想做物联网网关,需要深入研究MQTT,MQTT协议相对简单,但是MQTT英文原版协议有130多页,中文版有近100页,是一本小书了。

每个行业都有自己的业务逻辑,在掌握基本的编程能力之一,你需要结合具体的业务去深入学习。

计算机与计算机思维人工智能的主要目的是用计算机来代替人的大脑。选:B特洛伊木马程序是伪装成合法软件的非感染型病毒选:A第二代计算机的主要特征为:全部使用晶体管,运算速度达到每秒几十万次。选:B计算思维最根本的内容,即其本质是抽象和自动化。选:A感测与识别技术包括对信息的编码、压缩、加密等。选:B计算机软件的体现形式是程序和文件,它们是受著作权法保护的。但在软件中体现的思想不受著作权法保护。选:A信息是人类的一切生存活动和自然存在所传达出来的信号和消息。选:A网格计算(GridComputing)是一种分布式计算。选:A第三代计算机的硬件特征是用中、小规模集成电路代替了分立的晶体管元件。选:A第一代计算机的程序设计语言是用二进制码表示的机器语言和汇编语言。选:A计算思维说到底就是计算机编程。选:B计算思维是一种思想,不是人造物。选:A云计算是传统计算机和网络技术发展融合的产物,它意味着计算能力也可作为一种商品通过互联网进行流通。选:A计算思维是人象计算机一样的思维方式。选:B小型机的特征有两类:一类是采用多处理机结构和多级存储系统,另一类是采用精减指令系统。选:A大规模集成电路的应用是第四代计算机的基本特征。选:A恶意软件是故意在计算机系统上执行恶意任务的特洛伊木马、蠕虫和病毒。选:A信息处理与再生技术包括文字识别、语音识别和图像识别等。选:B对计算机病毒的认定工作,由公安部公共信息网络安全监察部门承担。选:A信息技术(InformationTechnology,IT)是指一切能扩展人的信息功能的技术。选:A计算机系统及计算原理为了提高计算机的运行速度和执行效率,在现代计算机系统中,引入了流水线控制技术,使负责取指令、分析指令、执行指令的部件串行工作。选:B一台计算机能够识别的所有指令的集合称为该计算机的指令系统。选:A *** 作系统是系统软件中最重要的一种,其功能是对计算机系统所有资源进行管理、调度和分配。选:A刷新频率是CRT显示器的技术指标,指的是屏幕更新的速度。刷新频率越高,屏幕闪烁就越少。选:AASCII码用7位二进制编码,可以表示26个英文字母(大小写)及42个常用符号,34个控制字符。选:A汇编语言的特点是由二进制组成,CPU可以直接解释和执行。选:B主频是指CPU和芯片组的时钟频率或工作频率。选:B外存和内存相比,具有容量大,速度慢,成本高,持久存储等特点。选:B微型计算机的台式兼容机是自己根据需要选择各个部件,配置出自己的计算机。选:A计算的复杂度指的是随着问题规模的增长,求解所需存储空间的变化情况。选:B目前微型计算机中常用的硬盘接口主要有IDE和SATA两种。其中,IDE是一种串行接口,SATA是一种并行接口。选:B构成计算机系统的电子元件、机械装置和线路等可见实体称为计算机系统的硬件。选:A声音信号和视频信号的数字化处理过程都是采样→量化→编码。选:BCache主要是解决CPU的高速度和RAM的低速度的匹配问题。选:A微型计算机外存储器是指软盘、硬盘、光盘、移动存储设备等辅助存储器。选:A判断 *** 作系统及XP *** 作盘系统使用LINUX是一个分时 *** 作系统。选:A格式化U盘是右击桌面“我的电脑”图标并选择格式化命令。选:B重启计算机意味着清除内存所有信息,重新把Windows *** 作系统调入内存。选:A剪贴板是内存中开辟的临时存储区,可实现Windows环境下应用程序之间数据的传递和共享。选:A文件名中不可以使用“/”这个符号。选:A打开一个对话框就是启动一个应用程序。选:B从回收站清除的文件不借助其他软件无法再恢复。选:A使用DEL键删除文件是进行物理删除而不是逻辑删除。选:B隐藏任务栏右边的扬声器是打开控制面板中的“声音和音频设备”对话框,去掉“将音量图标放入任务栏”复选框的勾。选:A搜索文件时可以按扩展名分类搜索。选:A我们无法知道CPU使用的情况。选:AWindowsXP *** 作系统是单用户、单任务 *** 作系统。选:B安装打印机不仅要把打印机的数据线连接到计算机上,还要加装该打印机的驱动程序。选:A注销计算机和重新启动计算机的作用完全相同。选:B计算机网络及INTERNET应用分组交换网也叫X25网。选:A搜索引擎是一个应用程序。选:B广域网是一种广播网。选:B分布式处理是计算机网络的特点之一。选:A网卡是网络通信的基本硬件,计算机通过它与网络通信线路相连接。选:A网络安全的基本需求是信息机密性、完整性、可用性、可控性和不可抵赖性。选:AGoogle就是典型的目录搜索引擎选:B非对称密钥密码体系也成为公开密钥密码体系,即加密解密采用两个不同的密钥。选:A人们通常把体系结构标准化的计算机网络称为第三代计算机网络。选:AYahoo是典型的目录搜索引擎。选:A网关又称协议转换器,不同类型的局域网相连接的设备。选:A>中国三大运营商都在大力发展物联网业务,物联网卡和NB物联网卡已成为物联网领域的重中之重。谈到物联网,很多人都在想大力发展NB物联网意味着什么。使用现有的2G、3G和4G网络以及移动网络信号是否不方便?
物联网卡的不同应用场景
高速率业务:主要使用3G、4G技术,例如车载物联网设备和监控摄像头,对应业务特点要求是实时数据传输。
中等速率业务:主要使用GPRS技术,例如居民小区或超市的储物柜,使用频率高但并非实时使用,对网络传输速度的要求远不及高速率业务。
低速率业务:业界将低速率业务市场归纳为LPWAN市场,即低功耗广域网。目前还没有对应的蜂窝技术,多数情况下通过GPRS技术勉力支撑,从而带来了成本高、影响低速率业务普及度低的问题。
目前低速率业务市场急需开拓,而低速率业务市场其实是最大的市场,如建筑中的灭火器、科学研究中使用的各种监测器,此类设备在生活中出现的频次很低,但汇集起来总数却很可观,这些数据的收集用于各类用途,比如改善城市设备的配置等等。
此时NB-IOT网络就应运而生,NB-IoT是指窄带物联网技术。NB-IOT聚焦于低功耗广域(LPWA)物联网市场,是一种可在全球范围内广泛应用的新兴技术。目前三大运营商已完成全国性主要地区的覆盖。
目前nb-iot物联卡具备以下优势
·大连接:每一个扇区可以支持10万个连接,与现有无线技术相比,NB-IoT可以提升50~100倍的接入数。
·广覆盖:比传统GSM网络增益20GB,一个基站提供的覆盖面积是以往的10倍。
·低功耗:NB-IoT节电技术DRX和PSM,通过减少不必要的信令和在PSM状态时不接受寻呼信息来达到省电的目的通常可以保障电池拥有5年以上的寿命。
·广应用:由于NB-IoT具有覆盖广、连接多、成本低和功耗低的优点,故其非常适合应用于低功耗设备,广泛应用于多种垂直行业。
·易使用:体积小,只需要搭配相应的NB-IOT模组,不占用内任何电路板空间。
·简单计费:NB物联卡的内部通信芯片、通信协议和资费政策较传统物联网卡有较大区别,支持定向连接,资费更优。
NB物联网卡和普通物联卡的区别有哪些?中景元物联指出合适NB-iot的应用场景非常多,对适合使用NB-iot的领域来说,机会非常多。从物联网企业家的角度来看,这等于是在扩大一个新的市场。在物联网时代,信息产业的传统运作模式正在被打破。
物联网(TheInternetofThings,简称IOT),即“万物相连的互联网”,是互联网基础上的延伸和扩展的网络,将各种信息传感设备与互联网结合起来而形成的一个巨大网络,实现在任何时间、任何地点,人、机、物的互联互通。
物联网并不是个新鲜的概念,20多年前,物联网概念由比尔盖茨首次在他的《未来之路》中提起。只是当时受限于无线网络、硬件及传感设备的发展,并未引起世人的重视。
2005年本人从事电表行业软件开发工作时,就接触过电力公司的远程抄表系统,这其实就是物联网的一种行业具体应用。传统的远程抄表系统均为集中抄读方式,即使用集中器通过485/MBus/PLC/Lora/Zigbee等有线或无线方式抄读目标设备的数据,如水表、气表、电表、传感器等。但是,有线存在布线困难问题,无线存在各种通信质量问题:如PLC难以避免噪声干扰、Lora通信速度较慢、点对点传输、ZigBee存在组网不可控现场通信质量差等。那有没存在一种通信技术,直接把设备数据上传到系统平台呢?这也是有的,一般方案是通过GPRS模块通信。但GPRS模块依然存在供电功耗和流量资费问题,因而没有很好地应用普及和推广。
2016年基于授权频谱(Licensed)的NB-IoT新型技术,很好的解决了GPRS的功耗问题,也因其大容量、覆盖广、高安全性等优势,在众多物联技术中脱颖而出,成为业界关注的焦点。具体来说,NB-IoT优点如下:
广覆盖:在同样的频段下,NB-IoT比现有的网络增益20dB,可更好满足厂区、管道井、井盖等这类对深度覆盖有要求的地方。
低功耗:模块在平时处于休眠状态,每天可根据程序设定自动唤醒上传数据,若没有收到请求的命令,模块会自动进入休眠,终端模块待机时间可长达8年。
低成本:与LoRa相比,NB-IOT无需自建基站,通讯稳定可靠。
大连接:同一基站可比现有无线技术提供50-100倍的接入数。
基于以上优点,NB-IoT通信技术可方便应用在以往难以应用远抄技术的领域,也使得传统远抄技术方案变得更简单,让设备通信更简单、更可靠。可广泛应用在各种行业中,比如:智能路灯、智慧停车、烟感气感监测、智慧消防、智能门锁、智慧水务、智慧井盖、智慧农业等行业应用。
目前,中国三大运营商正大张旗鼓地进行相关NBIoT通信基础建设,NBIoT相关行业应用也已初成规模。像NB-IOT在水表市场已小有突破,少数企业2018年出货实现了百万量级。燃气表龙头金卡智能,2017年全年试挂不足2万台,中间经过客户小批量试挂、中批量验证,2018年其出货量达到70万台。
凡事有利就有弊,那NBIoT通信技术应用有什么缺点呢?
传输数据少。基于低功耗的机制,注定了NBIoT只能传输少量的数据到远端,因此正式应用时要么单次传输字节数少,要么传输数据间隔长。比如智能水表、气表,一般是24小时传输一次数据。这意味着依靠实时数据分析的行业应用难以推广此技术。此外,还存在寿命到期电池更换的麻烦。
通信成本贵。目前NBIoT通信模块还是偏贵,主流芯片厂家主要有紫光展锐、华为海思和联发科,一块NBIoT模组在20~50元左右。通信流量上,电信是20元一年,包年时间多相对便宜,中国移动资费差不多,若设备量大还有议价空间。一块水电表零售价也就一两百元,NBIoT模组就吃掉了一大块成本。
技术待成熟。虽然中国各大运营商号称投入大量人力物力财力进行相关建设,NBIoT技术还不是很成熟。本人所在公司系统平台于2017年底就和电信云平台进行了系统对接,目前接了近万台NB-IoT电表和水表。发现电信平台依然在不断地更新升级,曾经在某商厦安装了300多块NBIoT电表,结果导致基站出现故障,后经电信技术人员积极抢修才恢复正常。诚然,电信云平台后面是华为公司作为技术支撑,实力强大,想必不久将来技术会成熟稳定。
平台对接难。电信的IOT平台走的是CoPA协议,CoPA协议对接方面复杂。虽然华为电信物联网平台上资料齐全,要和电信开放平台对接,还是要花不少时间。2017年公司研发部门安排专人花了2个月才对接好,为兼容传统tcp、udp通讯,后期又对设备通讯服务进行了优化处理,前前后后花了大概半年时间才完全稳定。因此,这对于一般传统企业还是有一定技术门槛的。
可以说,物联网是通向未来智能世界的万物互联必由之路,下一个万亿元级的通信业务,蕴育着巨大的市场空间,是未来促进社会发展刺激GDP增长的重要驱动力。NB-IoT通信技术,使得万物互联成了可能,将会普及到各个行业中。预计未来几年,物联网行业将因技术的更新换代呈现爆发性增长,拭目以待!

NHR系列智能显示控制仪表RS-485通信中应用

01摘要
NHR系列智能显示控制仪表是经过多年开发制造经验而设计生产,集诸多全新功能于一身的新一代智能显示控制仪表。针对现场温度、压力、液位、速度、流量等各种信号进行采集、显示、控制、远传、通讯、打印等处理,构成数字采集系统及控制系统,广泛运用于电力、石化、冶金、轻工、制药、航空等诸多领域。产品的EMC设计符合GB/T176262-11相关规定,同时产品取得了CE认证。
02产品的市场背景
在自动化控制领域,随着分布式控制系统的发展,在产业上的分布式控制系统中,经常需要采用串行通讯来达到远程信息交换的目的。目前,用于串行通讯的接口标准包括:RS-232、RS-422、RS-423和RS-485。RS-232是最早的串行接口标准,广泛应用在短间隔、较低波特率串行通讯中。其后发展起来的RS-422、RS-485是平衡传送的电气标准,比起RS-232非平衡的传送方式在电气指标上有了大幅度的进步。RS-485串行接口的电气标准实际上是RS-422的变型,它属于七层OSI (open system interconnection,开放系统互连)模型物理层的协议标准。由于性能优异、结构简单、组网轻易,RS-485总线标准得到了越来越广泛的应用。下面是关于虹润NHR 系列智能显示控制仪表在RS-485通信中的应用。
03产品的技术原理
1、系统技术方案
工业场合中,经常要用一些仪表去控制如温度、液位、流量等。在某些场合,需要1台控制器灵活地控制多台仪表,以达到设计控制目的。
本文利用标准的MODBUS RTU通讯协议与 RS-485通信指令,方便的实现与多台虹润NHR系列仪表的串行通信成功的实现了用单台控制器对多台仪表的灵活控制。可编程控制器允许在一个RS-485通信接口上连接多达100台虹润仪表,仪表大于60台时,需加一个RS-485中继器,RS-485通信口通信距离长达1KM以上。
2、RS-485总线的硬件设计
考虑到此控制系统中网络节点数较多,整个网络超过100个节点,为保证通讯的可靠性和通讯效率按照仪表在系统中实现的不同功能、数据流量、实时性要求把各仪表分布到两条总线上,而且所选器件中的RS-485芯片驱动能力均达到255点,通讯速率选96Kbps,离主站最远的节点不超过50m。
3、网络协议
为了能使具体的命令、数据在网络上正确地传输,在数据链路层必须提供一定的网络协议,保证在物理层的比特流出现错误时进行检测和校正,同时实现数据帧和命令帧的功能。然而,为保证数据传输质量,对每个字节进行校验的同时,应尽量减少特征字和校验字,而常用的数据包格式由引导码、长度码、地址码、命令码、数据、校验码、尾码组成,每个数据包长度达20~30字节,在RS-485系统中显得又有些繁杂。由于MODBUS协议是公然的通讯协议,而且被很多的工控产品生产厂家支持,该协议已广泛应用于水利、水文、电力等行业设备及系统的国际标准中,因此,本系统采用MODBUS协议作为此控制系统的网络协议。
在此控制中由于对PLC和变频器的通讯数据量小而且实时性要求不高,因此采用MODBUS ASCII方式,而对单片机的数据通讯量较大且实时性要求高,因此采用MODBUS RTU方式。
04产品的应用
考虑到100台仪表在RS485总线上的实时性、有效性、正确性,现将100台虹润NHR系列智能控制仪表通讯组网分为两条总线,分别由PLC的串口扩展口分别定义为A1、B1和A2、B2 ;下面是虹润NHR系列智能控制仪表与PLC主机连接图,见图1、图2:

图1:虹润仪表与PLC组网图

图2:虹润仪表与PLC组网图
1、虹润NHR系列智能显示控制仪表通信参数配置
(1)、通信方式为RS-485, (1个起始位,1个或2个停止位,8位数据,无奇偶校验)
(2)、通信传输数据的波特率(12K 24K 48K 96K 192K)可在仪表叁数baud中设定
(3)、通信协议为标准Modbus Rtu 模式
这里重点突出可编程控制器与虹润NHR仪表RS-485接口部分。在工业现场,RS-485通信是应用较多的一种通信方式,图中可编程控制器通过RS-485通信接口与多个NHR仪表相连接,最多可达到100台,每台仪表被赋予各自的地址码,用以识别身份,( 地址码可在仪表叁数Addr中设定),子单元和主单元采用地址轮询方式。这样可编程控制器的RS-485通信口便能通过RS485总线对挂在下面的所有仪表进行控制 *** 作。
2、虹润NHR系列智能数字显示控制仪通信数据流解析
本通信协议采用标准ModBus协议,采用RTU(十六进制数)传输模式。ModBus协议是一种主---从式协议。任何时刻只有一个设备能够在线路上进行发送。由主站管理信息交换,且只有主站能发起。主站会依次对从站进行轮流查询。只有当从站地址与轮询地址相匹配,从站才能回复消息。从站之间不能进行直接通信。协议桢中不包含任何消息报头及消息结束符,消息的开始和结束依靠间隔时间来识别,当间隔时间长于或等于35个字符时,即作为检测到桢结束。如果网络内没有与查询地址相一致的从站或从站接收时CRC校验出错,主站将不会接收到返回桢,这时主站根据超时设定判断是否超时,如超时,作出重发或d出异常错误窗口动作。
协议桢定义如下:

从站地址:地址必须在1---247之间。
在同个主站网络中每个从站地址必须唯一。
0为广播地址,从站接收消息并作相应处理,但不能回复消息。
功能代码:包含读、写寄存器。
数据:以二进制代码传输。
CRC16:循环冗余校验,校验从从站地址到数据区最后一个字节,计算多项式码为A001(hex)。
(1)、通讯口设置
通讯方式 异步串行通讯接口,如RS-485,RS-232等。
波 特 率 2400~9600bps(可由设定仪表二级参数自由更改,设定仪表二级参数BT,默认4800)。
(2)、字节数据格式 HEX
一位起始位、八位数据位、一位停止位、无校验

(3)、消息桢格式(读、写功能是从主站角度定义的)
读寄存器桢

读寄存器返回桢

写寄存器桢

写寄存器返回桢

错误返回桢

功能代码表:1

错误代码表:2

3、产品

05结论
本文利用标准的MODBUS协议和虹润NHR系列智能显示控制仪表进行RS-485通信,实现了单台控制器控制多台NHR仪表的任务,并能实时检测各仪表的运行状态,整个系统控制灵活方便, 方案结构简单,开发成本低,周期短,既使在恶劣的工业环境下也能稳定工作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13426330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-03
下一篇 2023-08-03

发表评论

登录后才能评论

评论列表(0条)

保存