ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:6.95MB ,
资源ID:4693925      下载积分:6 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4693925.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于ARM的工业现场在线监控系统设计样本.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于ARM的工业现场在线监控系统设计样本.doc

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 基于ARM的工业现场在线监控系统设计 高罗卿 ( 常州轻工职业技术学院, 常州 213164) 摘要: 针对远程监控系统中, 对网络通讯服务和数据采集与逻辑控制的实时性问题进行了研究, 将系统分成两个模块, 一个是以太网通讯模块, 一个是根据实际工况需要设计的数据采集与控制模块。两个模块之间经过CAN总线通讯。该系统满足了现场的实际需要, 解决了以太网通讯和现场实时监控之间的矛盾, 也符合嵌入式系统模块化设计的理念, 易于扩展和修改。 关键词: 自动控制技术; 实时监控; 嵌入式系统; 以太网 TP2 Desi

2、gn of On-line Monitoring System of industrial field based on ARM Gao Luoqing (Changzhou institute of light industry technology, Changzhou 213164) Abstract: For remote monitoring systems, network communications services and data acquisition and real-time logic control problem is studied. The syst

3、em is divided into two modules, one Ethernet communication module, one is the data acquisition and control module based on the actual working conditions. The communication between the two modules through CAN bus. The system meets the needs of the actual working conditions, and resolved the conflict

4、between the Ethernet communications and the real-time monitoring. The embedded system in line with the concept of modular design, easy to extend and modify. Keywords: Automatic control technology, real-time monitoring, embedded system, ethernet 0 引言 随着工业现场控制的智能化的发展, 以太网应用于工业控制方面得到了广泛的应用。但由于在嵌入

5、式设备上经过软件实现TCP/IP协议栈和小型的嵌入式系统, 消耗了处理器大部分的资源和处理时间, 使得现场监控的实时性得不到足够的保证。 1系统结构 图1 系统结构图 收稿日期: -9-20 作者简介: 高罗卿( 1981年-) , 女, 讲师。 E-mail: 本系统的结构图见图1。在本系统中, 远程监控室经过上位服务软件发送控制命令, 经过Internet与现场以太网通讯模块建立连接, 经过命令的解析和执行, 以太网通讯模块与采集控制模块经过CAN总线, 获取采集信息和分发控制命令, 然后以太网通讯模块将采集器的数据, 参数等有用信息, 上传给上位服务器端。

6、 本系统的硬件结构图见图2。系统的MCU采用ARM7内核的芯片LPC2136, 该芯片具有256K的FLASH, 32K的RAM, 多种串行通讯接口。网络控制器采用的是Microchip公司的ENC28J60, 该芯片是带有行业标准串行外设接口( Serial Peripheral Interface, SPI) 的独立以太网控制器。它可作为任何配备有SPI 的控制器的以太网接口。 图2 系统硬件结构图 CAN总线采用的是Microchip公司推出的MCP2515, 是具有SPI接口的独立CAN控制器。它完全支持CAN V2.0B技术规范, 通信速率最高可达1 Mbps, 内含3个发送缓

7、冲器、 2个接收缓冲器、 6个29位验收滤波寄存器和2个29位验收屏蔽寄存器。它的SPI接口时钟频率最高可达10 MHz, 可满足一个SPI主机接口扩展多路CAN总线接口的需要。 采集控制模块负责现场实时数据的采集和处理, 以及所需控制逻辑的实时执行, 然后将采集量的结果和控制逻辑的结果经过MCP2515的CAN总线上传给网络通讯模块。在网络通讯模块中, 将开辟一个虚拟的设备状态缓冲, 用于保存当前的采集控制模块的状态。网络通讯模块还可经过RS232总线与现场的智能设备通讯, 然后综合结果, 响应上位服务器端的命令和请求, 回复相应的数据。 2网络通讯模块 以太网控制器E

8、NC28J60, 符合IEEE 802.3 的全部规范, 采用了一系列包过滤机制以对传入数据包进行限制。能够设置一些不同的过滤器, 自动拒绝不需要的数据包, 从而最大限度地降低主控制器的处理工作量。 提供了一个内部DMA 模块, 以实现快速数据吞吐和硬件支持的IP校验和计算。与主控制器的通信经过两个中断引脚和SPI 实现, 数据传输速率高达10 Mb/s。两个专用的引脚用于连接LED, 进行网络活动状态指示。与MCU的连接图见图3。 图3 ENC28J60与MCU的硬件连接图 ENC28J60 的工作频率为25 MHz。有一个8KB的缓冲器包含供以太网控制器使用的发送和接收存储器,

9、分成单独的接收和发送缓冲空间。 主控制器使用SPI 接口能够对发送和接收存储器的容量和位置进行编程。 本系统采用带有网络变压器的RJ-45接头HR911105A, 此接头还包含有两个指示灯, 用于和ENC28J60的LEDA和LEDB连接, 指示网络的连接和发送接收状态。连接图见图4。 图4 RJ-45的连接图 3系统软件设计 本系统的网络通讯部分软件采用了嵌入式操作系统UCOS-II和采用了源码开放的轻型网络协议栈LWIP, 具体的工作可分为3个步骤: 1, 嵌入式操作系统UCOS和网络协议栈LWIP的移植工作。2, ENC28J60的设备驱动开发。3, 网络上层端口服务程序的开

10、发。 图5 系统软件的架构 3.1软件平台的移植 系统软件平台的移植工作主要有两个方面: 一个是操作系统UCOS的移植, 一个是协议栈LWIP的移植。LWIP协议栈把所有与硬件OS 编译器相关的部份放在/src/arch目录下, 因此LWIP在UCOS上的实现就是修改这个目录下的文件。 (1)与CPU或编译器相关的include文件 在/src/arch/include/arch目录下cc.h, cpu.h, perf.h中有一些与CPU或编译器相关的定义。 (2)与操作系统相关部份 sys_arch.c中的内容是与OS相关的一些结构和函数主要能够分为四个部分: sy

11、s_sem_t 数据结构及信号量函数 struct sys_sem_t sys_sem_new sys_sem_free sys_sem_signal sys_arch_sem_wait sys_mbox_t 消息函数 sys_mbox_new sys_mbox_free sys_mbox_post sys_arch_mbox_fetch 系统超时函数 struct sys_timeouts *sys_arch_timeouts(void) 创立新线程函数 void sys_thread_new(void (* thread)(void *arg), void *arg)

12、 (3)lib_arch中库函数的实现 u16_t htons(u16_t n) u16_t ntohs(u16_t n) u32_t htonl(u32_t n) u32_t ntohl(u32_t n) int strlen(const char *str) int strncmp(const char *str1, const char *str2, int len) void bcopy(const void *src, void *dest, int len) void bzero(void *data, int n) 前四个函数一般由用户自己实现, gcc的l

13、ib库里已经有了后四个函数。 3.2 ENC28J60的设备驱动开发 在软件平台的移植完成后, 主要的工作就是网络驱动程序的编写了, 驱动的移植主要就是完成ethernetif.c的工作。LWIP协议栈已经给好了驱动的接口。 struct netif { struct netif *next; struct ip_addr ip_addr; struct ip_addr netmask; struct ip_addr gw; err_t (* input)(struct pbuf *p, struct netif *inp); err_t (* output)(st

14、ruct netif *netif, struct pbuf *p,struct ip_addr *ipaddr; err_t (* linkoutput)(struct netif *netif, struct pbuf *p); void *state; #if LWIP_DHCP struct dhcp *dhcp; #endif unsigned char hwaddr_len; unsigned char hwaddr[NETIF_MAX_HWADDR_LEN]; u16_t mtu; char name[2]; u8_t num; u8_t

15、 flags; }; 其中主要就是: err_t (* input)(struct pbuf *p, struct netif *inp); 这个是被驱动调用的,传递一个数据包给TCP/IP栈。 err_t (* output)(struct netif *netif, struct pbuf *p,struict ip_addr *ipaddr); 这个是被IP模块调用的, 向以太网上发送一个数据包, 函数要先经过IP地址获得解决硬件地址, 然后发包。 err_t (* linkoutput)(struct netif *netif, struct pbuf *p); 这个是直

16、接发送数据包的接口。 相应的LWIP在ethernetif.c里面给了几个函数框架, 这个文件相当于一个硬件抽象层。 static void low_level_init(struct netif *netif); 网卡初始化函数。 static err_t low_level_output(struct netif *netif, struct pbuf *p); 链路层发送函数, 实现err_t (* linkoutput)接口。 static struct pbuf *low_level_input(struct netif *netif); 得到一整帧数据。 static e

17、rr_t ethernetif_output(struct netif *netif, struct pbuf *p,struct ip_addr *ipaddr); 实现发送线程, 实现err_t (* output)接口。 static void ethernetif_input(struct netif *netif); 实现接收线程, 识别数据包是ARP包还是IP包。 err_t ethernetif_init(struct netif *netif); 初始化底层接口。 本文在写ENC28J60的驱动的时候, 重新建了个实际的网络硬件控制的文件ethernet.c, 在此文件里

18、提供几个主要的函数: void EMACInit( void ); 硬件的初始化。 void EMACPacketSend ( u8_t *buffer, u16_t length ); 用来将buffer里面的包复制到网络设备的发送缓冲里面, 发送。 u16_t EMACPacketReceive ( u8_t *buffer, u16_t max_length ); 用来将网络设备的接收缓冲里面的包数据复制到buffer里面。 u16_t EMACPacketLength ( u16_t max_length ); 获得包长度。 最后用ethernet.c里函数完成ethern

19、etif.c里的框架。这样移植ENC28J60的驱动部分就会显得清晰很多。 3.3网络上层端口服务程序的开发 LWIP提供三种API接口函数: 1.RAW API。 2.lwip API。3.BSD API。 对于多任务系统而言, 因为lwip采用的是将TCP/IP协议放在一个单独的线程里面, 那个线程是tcpip_thread。采用RAW API回调技术, 就得把应用层程序写在tcpip_thread这个线程里面, 作为同一个任务运行。 而采用lwip API, 就能够将TCP/IP协议和应用层程序放在不同的任务里面, 经过调api_lib.c提供的函数, 编写相应的应用层代码。本文

20、采用这种方式。 下面的程序是个简单的Websever的服务程序代码。 void TaskHttp (void *pdata){ u8_t datanum; struct ip_addr ipaddr; struct netconn *conn, *newconn; pdata = pdata; IP4_ADDR(&ipaddr, 192,168,0,88); conn = netconn_new(NETCONN_TCP); //创立一个连接。 netconn_bind(conn, &ipaddr, 80); //绑定IP地址和服务端口号。 netco

21、nn_listen(conn); //监听 while(TRUE){ newconn = netconn_accept(conn); //等待这个连接的信号量。 if(newconn != NULL){ struct netbuf *newnetbuf; newnetbuf = netconn_recv(newconn); //获得这个连接的指针。 if(newnetbuf != NULL){ char *pnow; char *data; int len=0; netbuf_data(n

22、ewnetbuf,&data,&len); //data指向数据处。 ... //此间为对网络数据的处理。 netbuf_delete(newnetbuf); //使用完毕后删除这个结构。 }netconn_close(newconn); //使用完后关闭连接。 while(netconn_delete(newconn) != ERR_OK) OSTimeDlyHMSM(0, 0, 1, 0); //系统延时 }}} 从底层到应用层,一般将底层数据接收作为一个线程,能够在一个任务里也能够直接在中断里解决。然后tcpip_thread是一个线程, 最后是应用层一个线程。

23、底层的邮箱投递活动是经过调用tcpip.c里的tcpip_input函数。这个函数向tcpip_thread投递消息。高层的投递是经过tcpip_apimsg函数来实现的。 4结束语 本设计经过实际使用, 能够满足工业现场在线监控的需求。数据采集与控制模块能够及时的处理采集的数据和最快的响应控制需求, 以太网通讯模块能够与各种总线接口通讯, 汇集上位系统所需的信息, 安全的处理与上位的通讯任务, 以保证与上位网络通讯的稳定性。模块化的设计便于后期方案的改进, 符合了现在嵌入式系统模块化设计的思想。 参考文献 [1]Jean J Labrosse.嵌入式实时操作系统μCOS-Ⅱ[M].北京:北京航空航天大学出版社, . [2]Dunkel,Adam.Design and Implementation of the LwIP TCP/IP Stack[M].Swedish Institute of Computer Science, .1-42. [3]傅成龙,严殊.基于uC/OS-Ⅱ与ARM平台的LwIP移植[J].西南科技大学学报, 24(3):72-74 [4]郑巨明,张和生.基于μC/OS-Ⅱ和LwIP的嵌入式以太网接口设计[J].计算机测量与控制, 17(11):2238-2242

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服