在工业控制领域,往往需要监控或控制多台设备,而大多数PC的控制和监控中心,布线更复杂,需要更多的监控设备“增加本地PC的数量,这无疑显着增加了成本。
在提出一种使用基于嵌入式系统的总线控制器来解决这个问题的方法,本文提出了TCP / IP协议和CAN总线多通道控制系统的设计与实现。过分析TCP / IP网络和CAN总线的特性,控制系统给出了硬件和软件模块的设计。程序基于内置网关,连接PC,记录现场设备和设置监控设备。TCP / IP,CAN总线,嵌入式系统,多CLC工业控制:TP393文档编号:A文章编号:1009-3044(2010)17-4805-04基于TCP / IP的多路控制器行业和CAN Buswang li -Xia,严凡,唐万伟(唐山学院计算机服务中心,唐山063000)摘要:在行业控制领域,我们通常需要监控或控制多个设备,但大多数控制和控制是个人计算机,电路布局太复杂。果要控制或监视的设备太多,计算机的数量会更多,因此成本很高。们提出了一种基于嵌入式系统的总线控制器方法来解决这个问题。
文介绍了基于TCP / IP和CAN总线的多路控制系统的设计和实现方法。据TCP / IP和CAN协议的特性,讨论硬件和软件模块设计模式。于网关的系统连接嵌入到上述个人计算机并连接到下面的本地设备以监控设备。键词:TCP / IP,CAN总线,嵌入式系统,多路工业控制TCP / IP,CAN是两种广泛使用的协议。CAN总线属于现场总线,已广泛应用于许多工业领域。
基于互联网的计算机现在基于TCP / IP协议,它不仅限于普通,而且也开始发展这个行业。于以上情况,本文实现了CAN总线和以太网连接方案。统架构系统架构分为四个部分:PC,集成控制器,CAN控制器和控制设备[1]。图1所示。CAN总线CAN总线[2]是一种串行数据通信协议,CAN协议的物理层和数据链路层功能的集成通信接口可以完成数据的定义,用户可以开发基于此,实际需要通信协议适配系统的应用层。CAN协议是删除传统地址代码的最重要特征,并取代了块编码通信数据,这种方法允许网络中的节点数量理论上不受限制,但也有不同的节点同时收到相同的数据。CAN总线允许在(40m)以下的短距离条件下以高速(1Mbit / s)数据传输容量进行高速数据传输,所有这些都具有低速(5kbits / s)传输容量10000m距离最大,非常适合高速工业自动化应用,CAN总线可以在同一网络上连接各种不同功能的传感器(例如,位置等,温度或压力)。组传输总线,每帧由七部分组成。CAN协议支持两种消息格式,唯一的区别是标识符(ID)长度的差异,标准格式是11位,扩展格式是29位。
标准格式中,分组起始位被称为帧起始(SOF),11位标识符的仲裁字段,以及其远程传输请求(RTR)。示请求帧的RTR位是请求帧中的数据帧或无字节数据。制字段包括标识扩展位(IDE),注意标准格式或扩展格式。还包括一个保留位(ro),扩展用于将来使用。用于指示数据长度数据字段(DLC)的最后四个字节。据字段范围为0到8个字节,然后是循环冗余校验(CRC)数据检测错误。段响应(ACK)包括响应和比特分隔符响应。送站由两个隐性级别(逻辑1)发送,因此接收站正确地接收一般级别的发送分组(逻辑0)以覆盖它。样,发送站可以保证至少一个网络站正确接收该分组。装标记在框架的后端。具有一些短间隔的两个相邻分组之间,如果时间不是总线接入站,则总线处于空闲状态。

入式系统通常是嵌入式系统,通过嵌入式计算机系统嵌入式计算机系统和执行器组成,是嵌入式系统的核心,硬件层,中间层,软件层软件层和应用系统的。行装置也在受控对象下指定,它可以接受由车载计算机系统发出的控制命令,执行指定的操作或任务。入式系统分为两个软件和硬件部分,下面分别介绍它们介绍:)嵌入式嵌入式微处理器基本系统硬件层是嵌入式微处理器,集成微处理器与通用CPU有较大区别最集成的微处理器,在特定用户组中运行,专用于系统设计,很多板完成任务,它将被集成到通用处理器芯片中,从而便于嵌入式系统成为设计更小,同时还具有很高的效率和可靠性。不同的嵌入式微处理器系统,但即使在同一系统或其他集成设备和接口中,也可以具有不同的数据总线宽度和时钟频率。前,全球有1000多种嵌入式微处理器架构有30多个系列,即传统系统有ARM,MIPS,PowerPC,X86和SH等。)集成操作系统嵌入式操作系统(Integrated Operating System,EOS)是过去广泛使用的系统软件,它主要用于工业控制和防御系统。

EOS负责所有嵌入式系统,软硬件资源的软分配,任务规划,控制,协调并发活动。必须反映在系统中,在该系统中可以获得某些模块的处理系统所需的功能。在,更多的应用程序为嵌入式Linux,Windows CE等。

要硬件组件和介绍PC与嵌入式设备通信使用TCP / IP协议配置的服务/客户端模式,服务器接收集成数据设备作为PC提交后计算处理数据传输到CAN总线通过CAN总线控制器上行控制设备,该设备与CAN总线上的板载设备进行双向通信。用AT91RM9200系列嵌入式微处理器ARM芯片,可以使用总线控制器SJA1000芯片。软件层面,嵌入式嵌入式操作系统内核Linux-2.4.27,bootloader使用U-boot 1.0版,编译器为arm-linux-gcc-2.95.3。入式微处理器嵌入式微处理器芯片,采用AT91RM9200系列ARM。AT92rm9200是基于ARM920T ARM核心处理器支持指令Thumb,一个可以做到每秒200万条指令,180 MHz,嵌入式MMU(内存管理单元); ??? 16 KB数据高速缓存,16-指令高速缓存Koctets,写入缓冲器,在线仿真器,包括调试通信通道,中间实现内置跟踪宏单元(仅限256引脚BGA封装),功耗:VDDCORE输入30.4 mA,休眠模式为3.1 mA,是一款高成本的ARM芯片。CAN总线上的CAN总线控制器使用SJA1000控制器芯片。

SJA1000是用于汽车和控制器局域网(CAN)环境的CAN独立控制器。是恩智浦半导体PCA82C200替代CAN控制器(BasicCAN)。外,它还增加了一种新的操作模式(pelican),这种型号支持CAN 2.0B协议,具有许多新功能。PCA82C200独立的CAN控制器电气兼容,PCA82C200模式(即默认模式BasicCAN);扩展接收缓冲区(64字节,先进先出先出)和CAN2.0B兼容协议无源扩展(PCA82C200帧兼容模式);支持11和29的二进制识别码,比特率高达1Mbits / s; PELICAN模式扩展:1)对错误计数器的读/写访问; 2)可编程错误警告限值; 3)最后一个错误代码寄存器; 4),每个中断总线CAN错误; 5)特定控制位丢失了中断仲裁; 6)单次传输(无重传); 7)处于只听模式(无应答,无错误有效标志); 8)支持热插拔(比特率检测软件); 9)扩展接收过滤器(4字节代码,字节掩码4); 10)收到信息本身(接收请求)。件开发演示首先在嵌入式设备上进行U-boot注册,Linux内核,内核配置支持TCP / IP网络文件系统NFS。面介绍如何使用与PC通信的应用程序,了实现网络上基本套接字进程之间的通信,Linux提供了一种将统一接口应用于应用层的方法,称为套接字(socket)接口或字集。Socket提供大量系统调用和相应的数据结构来访问底层通信协议。Linux中,插件接口是应用程序访问底层网络协议的唯一方法。定义了许多函数和例程,程序员可以使用它来开发Web应用程序。接字接口旨在提供进程间通信方法,这种方法在相同或不同的主机上,能够以相同的规范进行双向信息传输。法通过调用连接接口API来相互通信。接字接口和网络通信协议功能以及底层系统调用实现实际的通信工作。在将在系统中使用的基本套接字如下所述。)函数Create socket –socket():在使用之前创建一个新的套接字格式:Socket FAR PASCAL(int af,int typ,Int Procotol);参数:af,发生的区域通信,类型,建立的套接字类型; Procotol,使用的具体协议)指定本地地址函数–bind():套接字地址与创建的套接字号。式:int bind PASCAL FAR(socket,const name struct sockaddr FAR *,int namelen);参数:s,通过socket()调用并返回未连接套接字描述符(套接字号)。他:没有错误,link()返回0,否则它描述地址结构SOCKET_ERROR:struct sockaddr_in {short sin_family; // AF_INETu_short sin_port; // 16位端口号,网络字节命令struct in_addr sin_addr; // 32位IP地址,字节顺序网络char sin_zero [8]; } //保留)套接字连接,–connect()和accept()函数:一起工作以完成连接格式:整数FAR PASCAL连接(一个或多个插座,常量结构sockaddr FAR *名称,INT namelen); FAR SOCKET PASCAL接受(SOCKET s,struct sockaddr FAR * name,int FAR * addrlen);参数:上面)监听连接–listen()函数:一个面向连接的服务器,表示它希望接收连接。式:int PASCAL FAR listen(socket,int log);)数据传输–send()和函数recv():发送和接收数据格式:int PASCAL发送FAR(socket,const char FAR * buf ,int len,flags int); int FAR PASCAL recv(socket,char const * buf FAR,int len,flags int);参数:buf,它指向数据缓冲区内存指针。)Multiplexing()函数:检测一个或多个出口的状态。式:int FAR PASCAL select(int nfds,fd_set FAR * readfds,fd_set FAR * writefds,fd_set FAR * exceptfds,const timeout FAR * timeval);参数:readfds,不指向读取检测; writefds,make point write pointer detection; exceptfds,检测错误标志,超时,最大等待时间的点是否关闭套接字函数–closesocket():关闭套接字格式:BOOL FAR PASCAL closesocket(sOCKET s);客户/套接字服务器模型使用TCP / IP网络交互两个进程之间的交互主要用于客户端/服务器(客户端/服务器)模式[3],即服务服务器,客户端是用户这些服务。该模式中,服务器通过网络连接到多个客户端。
模型的实施基于以下两点:1,非互惠效应; 2,通信完全异步。操作期间要采取的客户端/服务器模型是活动模式引用过程如下:首先,服务器端首先启动,并根据引用提供服务。)要打开通信通道并通知本地主机,它已准备好在已识别的地址中接收客户端请求。)等待到达港口的客户请求。)重复接收的服务请求,处理请求并发送响应信号。)返回第二步,等待另一个客户端请求)关闭服务器。户端工作原理如下:)填充一个开放的通信通道,并连接到主机服务器所在的特定端口。)服务器发送服务请求消息,等待接收回复,转发请求……)在请求附近的通信信道后终止。于以上原理,系统在客户端与两个流程服务器之间的通信过程如图所示。过此过程,PC和嵌入式设备可以构建套接字连接以交换数据。以与系统和嵌入式设备控制设备之间的通信的另一部分进行通信[4-5],通信包传输四种帧类型,即一帧数据,远程帧和帧过载错误帧。据帧由七个不同的比特字段组成,即帧起始,仲裁字段,控制字段,数据字段结束,CRC字段,干预字段,帧,发送方负责将数据传输到接收方,远程帧由6个不同的位字段组成,即帧起始,仲裁字段,控制字段,CRC字段,字段响应,帧的结束,请求传输具有相同标识符的数据帧的远程总线单元帧;错误帧由两个不同组成的字段组成,恒温阀芯第一个字段是错误标志,一个覆盖错误标志提供不同的站点,第二个字段是错误定界符,发送一个帧单位错误检测到总线错误;过载帧包括定义的过载和过载指示符,它会破坏两个位字段,以在前一个和下一个(或远程)数据帧之间提供额外的延迟。面简要描述帧格式的关键部分。据帧和远程机架开始的帧标志,仅由一个“显性”位组成,此部分完全由控制芯片组成。裁域包括标识符和远程传输请求位(RTR)。于CAN2.0A,标识符的标准长度为11位。据帧中的RTR位必须是显性位,而远程帧中的RTR位必须是隐性的。于CAN2.0,仲裁和扩展格式领域的不同标准。标准格式中,11位标识符的仲裁域和远程传输请求位。扩展格式中,29位标识符字段仲裁和远程请求请求位(SRR),标志(IDE)和远程传输请求位。裁字段的一个角色是远程帧或帧传输目的地,第二个被指定为远程帧或数据帧。SJA1000数据仲裁领域的配置是通过软件编程完成的。制字段由6位组成,表示有效数据帧的数据长度。SJA1000数据控制字段配置通过软件编程完成。复合数据帧的数据字段传输数据。可以是0到8个字节。

SJA1000数据字段的配置通过软件编程完成。CRC字段包括CRC序列,其部分由SJA1000控制芯片组成。度字段响应的两位,包括响应间隔和响应分隔符。SJA1000由控制芯片自动完成。个数据帧和远程机架由一个标志序列由7位标志“隐性”序列定义。部分由控制芯片SJA1000自动完成。上所述,仲裁域,控制字段,数据字段由SJA1000软件编程终止,帧起始,CRC字段,响应字段配置,帧结束由芯片自动完成。CAN总线控制器SJA1000。该注意的是,所需的数据传输也注意到字节的顺序,不同的CPU具有不同的数据存储顺序,存储器被分成字节的字节顺序和网络的字节顺序,目前的设计涉及传输网络和不同的CPU平台,我们必须注意字节的顺序。总结了开发过程值得注意的是编译器版本与问题交叉,最好的应用程序是使用相同的编译器版本和内核编译器编译的,必须仔细设置字节顺序的问题。
本文转载自
恒温阀芯 https://www.wisdom-thermostats.com
