原创 智能仪器接口与数字处理系统设计方案

2009-9-20 09:32 1850 5 5 分类: 处理器与DSP
作者:王金海,孟 菊,陈才和,丁桂兰     时间:2007-01-17    来源: 
 
      

摘 要:为满足智能仪器在数据采集与控制中对于数据的实时性、高效性传输要求。介绍了一种以DSP Cygnal8051 单片机为核心器件的智能仪器的网络接口,包括它的功能和特点以及该接口的软件、硬件实现方法。利用DSP 进行数字信号处理、检测和控制。Cygnal8051 单片机嵌入TCP/ IP 协议,通过连接以太网控制器完成数据的远程通信,进而实现仪器、设备工作参数的远程配置,运行状态的远程监控功能。



关键词:DSP ;单片机;RTL8019AS ;以太网接口



  智能仪器的数据采集过程中,一方面要对数据进行处理、控制;另一方面要对数据进行远程传输。采用传统的数据传输方式,处理数据需要一定的时间,通信过程同样要占用一定的时间。这样很难达到数据传输的实时性要求。在一些重要机构的通信系统中需要实时监测仪器设备的运行状态,工作参数等,如气象部门实时采样雨量数据,温度湿度测量系统实时反映参数的变化情况等。采用双CPU 的设计大大提高了数据的处理速度,满足了信息的高速传输要求;在单片机中嵌入TCP/ IP 协议,实现了远程控制、监测功能,为智能仪器提供了网络接口,实现其网络化功能。


 


智能仪器的网络接口的硬件设计<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



 硬件设计概述


智能仪器的网络接口的硬件结构如图1 所示,传感器采集到的模拟信号经过滤波放大后,由模/ 数转换器转换成相应的数字信号, 再由DSP( TMS<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />320C54x) 进行数字信号处理,将处理后的数据通过HPI(主机接口) 传送到单片机(C8051F020),单片机内嵌入TCP/ IP 协议,它主要负责数据的远程通信,完成网络数据的拆包与主机接口数据的打包。单片机通过并行接口与以太网控制器连接,以中断方式实现并行通信。以太网控制器接收到网络传输到的数据后,通过MAC 比较、CRC 校验后,存到接收缓冲区;收满一帧后,以中断方式通知单片机。单片机对接收到的数据进行判断,如果是UDP数据包,则检查IP 地址和端口号,如果正确则接收数据包,并解包,然后将数据部分发送至DSP。反之,如果接收到DSP 发送来的数据,则将数据按照UDP 协议格式打包,然后送到以太网控制器中的发送缓冲区,传输到网络上。


20070117121943573.jpg



  TMS320C54x DSP C8051F02 0 的并行连接


通过TMS320C54x DSP HPI 接口与C8051F020单片机连接可以实现CPU 间的级连,使系统达到双CPU 的处理速度。硬件连接如图2 所示。


20070117122017961.jpg



DSP 的主机接口有两种工作方式,共用寻址方式(SAM) 和仅主机寻址方式( HOM) DSP 和单片机都可以访问片内存储器,当单片机与DSP 访问冲突时,单片机有优先权,DSP 则等待一个周期。



单片机先向DSP 写入控制字,设置工作模式,然后将访问地址写入HPIA ,再对HPID 进行读写,即可读出和写入指定的存储单元。由HBIL HC2N TL1 HCN TL0 区分16 位数据的高、低字节。将单片机的低三位地址线A2 A1 A0 分别接到HBIL HCN TL1 HCN TL0 上。



单片机向DSP 存储器写数据的部分代码如下:


;单片机向HPIC 写控制字0000H


mov DPTR , # 4000H


mov A , # 00H


movx @DPTR , A  ;第一字节,HCNTL1/ 0 = 00 ,HBIL = 0


mov DPTR , # 4004H


mov A , # 00H


movx @DPTR , A  ;第二字节,HCNTL1/ 0 = 00 ,HBIL = 1


;HPIA 寄存器写要访问的地址1000H


mov DPTR , # 4002H


mov A , # 10H


movx @DPTR , A  ;第一字节,HCNTL1/ 0 = 10 ,HBIL = 0


mov DPTR , # 4006H


mov A , # 00H


movx @DPTR , A  ;第二字节,HCNTL1/ 0 = 10 ,HBIL = 1


;HPID 寄存器写数据1234H


mov DPTR , # 4001H


mov A , # 12H


movx @DPTR , A  ;第一字节,HCNTL1/ 0 = 01 ,HBIL = 0


mov DPTR , # 4005H


mov A , # 34H


movx @DPTR , A  ;第二字节,HCNTL1/ 0 = 01 ,HBIL = 1



C8051F020 单片机和DSP 芯片上有丰富的片上资源。C8051F020 芯片上有可编程增益放大器的ADC ,可供扩展;可程控更新的DAC ;64 kB 在系统可编程FLASH 存储器;外部存储器接口,SPISMBus UART 串行接口等,方便扩展键盘、LCD 液晶显示屏等外围设备。TMS320C54x DSP 提供了McBSPs (多通道缓冲串口) ,允许与其他的54x 设备、编解码器等进行直接接口;包括6 通道的DMA控制器,用于执行独立的数据传输。因此选择这样的SOC(片上系统) 作为该智能仪器的网络接口的核心器件,使得该接口具有广泛的扩展功能。



  以太网控制器与C8051F020 的连接


以太网控制器与C8051F020 的连接如图3 所示。


20070117122109323.jpg


RTL8019AS 工作在8 bit 模式下,DMA 按字节存取。RTL8019AS 选择的I/ O 起始地址为300H ,用到的地址空间为300H310H



以太网控制器的寄存器组由CR 寄存器中的PS0 PS1 位分页,单片机对RTL8019AS 的操作即是对I/ O 地址空间的操作。



RTL8019AS 要进行复位和初始化,首先使芯片处于停止模式( reg00 = 0x21) ,这时不会发送和接收数据包,再对寄存器进行设置,配置物理地址,并对内部RAM 进行划分,建立接收缓冲环和发送缓冲环。使用0x400x4b 为发送缓冲区,0x4c0x7f为接收缓冲区。以太网控制器接收到网络数据包就自动执行本地DMA ,将数据送入接收缓冲环,然后向单片机申请中断;反之,DSP 处理后的数据经过单片机按照网络协议打包后,将数据送入到以太网控制器的发送缓冲区。



以太网控制器有两个指针寄存器来控制缓冲区的存储过程,当前页面指针curr 和边界指针bnrycurr 指向新接收到帧的起始页面,即接收缓冲环的写页面指针; bnry 指向读过的最后一个页面,即接收缓冲环读页面指针。自定义指针next _page ,表示存储分组缓冲区的边界,初始值为next _page =bnry ,读取一页数据后由软件执行bnry 1 ,curr自动加1 curr 不等于bnry ,表示有新的数据包在缓冲区中,读取一包的前四个字节,前四个字节并不是以太网数据包的内容。分别表示数据包存放的页地址和已接收的数据的字节数。如果curr = 0 ,表示读取出错,返回null 。如果bnry > 0x7f ,bnry= 0x4c



读取数据包的部分程序代码如下:


/ / 收到一个有效的数据包,返回数据


page (0) ;     / / 0


bnry = reg03 ;    / / 读页指针


page (1) ;     / / 1


curr = reg07 ;    / / 写页指针


page (0) ;


.…….


reg09 = bnry ;    / / 读数据存放的页地址高8 bit


reg08 = 4 ;     / / 读数据存放的页地址低8 bit


reg0b = len > > 8 ;  / / 读数据的字节数高8 bit


reg0a = len &0xff ;/ / 读数据的字节数低8 bit


reg00 = 0x0a ;   / / 读取远程DMA


for (i = 0 ;i < len ;i + + )


 { buf [ i ] = reg10 ; }


reg0b = 0x00 ; reg0a = 0x00 ;reg00 = 0x22 ; / / 完成远程DMA


bnry = next_page ;


……..



 智能仪器网络的构成


该智能仪器网络接口可以作为一个智能仪器节点,由这样的许许多多的相同或不同功能的智能仪器节点就组成了智能仪器网络。每个节点都具有数据采集模块、数据处理模块和通信模块,节点在网络中可以充当数据采集者、数据中转站等。作为数据采集者,节点采集数据参数,通过通信协议将处理后的数据经以太网传输给监控机( PC) ,多个WEB 浏览器可以通过网络浏览监控机的网页,已获得所需的数据。由这样的一台监控机、多台浏览器、多个智能仪器节点就组成了一个局域网。多个这样的局域网连接到大型服务器上即可构成大规模的智能仪器网络,如图4 所示,组成高精度、功能强大的测控网络,支持分布式处理与决策。


20070117122157320.jpg



 通信软件设计



 TCP/ IP 协议嵌入到单片机中


在链路层中实现了ARP 协议。ARP 协议包的接收和发送由函数arp_rcve arp_send 实现。arp_rcve 负责接收网络上广播的arp ,判断硬件类型、协议类型是否正确,判断arp 包的类型是网络上其它机器的请求包还是返回本机的响应包,如果是响应包,并且本机的IP 地址与arp 包的源IP 地址相同,则发送相应的IP ;如果是请求包,则发送相应的ARP 包。arp_send 负责主机向网络发送数据包时发送ARP 请求包以及被arp_rcve 调用响应收到的ARP 请求包。



在网络层中实现了IP 协议和ICMP 协议。IP协议包的接收和发送由两个函数ip_rcve ip_send实现。ip_rcve 负责接收IP 数据包,收到IP 包后,首先判断其版本号、数据长度、目的地址、检验和是否正确,再根据IP 首部的协议类型字段的值交给相应的上层协议处理;ip_send 负责发送IP 数据包,接收上层协议传递下来的数据,加上20 byte IP 首部,正确设置源IP 地址和目的IP 地址、协议类型,计算检验和,交给下面的链路层发送。ICMP 协议负责传递差错报文以及其它需要注意的信息,且由ICMP 首部8 bit 的类型字段和8 bit 的代码字段决定信息的种类。



在传输层实现了UDP 协议。由函数udp_rcve实现对UDP 包接收的处理,判断其端口号、检验和是否正确,正确则拆包处理,将其数据交给相应端口的应用程序,不正确则丢弃;函数udp _ send 实现对UDP 包发送的处理,从应用程序接收数据,设置相应的源端口号和目的端口号,然后交给IP 层发送。TCP/ IP 协议在单片机中的处理流程如图5 所示。


20070117122239622.jpg


 


智能仪器与监控机( PC) 的软件设计


通信协议数据包的格式如表1 所示。


20070117122312558.jpg


字头(一个字节) :数据包的起始位。(如果收到协议规定的字头,即表示开始接收数据包。)


信令帧(一个字节) :数据包命令字的具体设置。最高位为信令、数据帧标志位(1 :表示信令帧;0 :表示数据帧) ,其余位表示发送的命令,未用到的位补零。


数据帧(一个字节) :传输的数据。(最高位为信令、数据帧标志位,其余位表示发送的数据。)


校验位(一个字节) :数据包的校验和。如果校验位正确则继续发送下一个数据包。否则,发送错误标志,再重新发送数据包。



智能仪器与监控机( PC) 间采用UDP 协议通信机制,不必在通信双方建立连接通道。在PC 机的应用程序中建立UDP 对象,然后打包数据,包中给定IPPort 以及要发送的数据。通过SendBuffer GetBuffer 方法向下位机(智能仪器) 发送数据和从下位机接收数据。


 


Web 浏览器与Web 服务器( 监控机) 的软件设计


智能仪器网络中的Web 浏览器(Web Browser) Web 服务器(Web Server) 之间在应用层采用超文本传送协议( HTTP) 进行通信。Web 浏览器与Web 服务器首先建立连接,打开一个Socket(套接字) 的虚拟文件,表示连接建立成功。Web 浏览器通过Socket Web 服务器提交请求, 通过HTTP 协议传送给Web 服务器,服务器接到后进行事务处理,通过HTTP 传给Web 浏览器,最后在Web 浏览器上显示出所请求的页面。



Web 浏览器与Web 服务器在运输层采用基于连接的TCP 协议。TCP 协议的通信机制在通信之前由通信双方确立身份( IPPort ) ,并建立一条虚拟的连接通道。首先在应用程序中创建TCP 对象,设置Socket 套接字的active 属性为t rue ,客户机发出请求,服务器监听来自客户机的请求,建立连接后,服务器处理该请求,将结果返回给客户机,重复上述过程,直至完成一次会话过程。



在智能仪器网络中采用浏览器/ 服务器的体系结构,可以将服务集中在一起管理,对智能仪器节点具有可靠的监控功能,统一服务于客户端,具备了良好的容错能力和负载平衡能力。


 


实验结果



本方案已应用在大规模舞台定速吊杆微机控制系统中。现场微机可获得吊杆的实际位置,具有监视功能的上位机( PC ) 发送命令控制吊杆的运动。吊杆控制行走精度为1 毫米。吊杆全程长15. 0 任取两路吊杆运动,行走半程(半程即7. 5 ) 的实验结果如表2 所示。行走全程的实验结果如表3 所示。经过实验可知,吊杆运行半程,误差约为0. 01 %;吊杆运行全程,误差约为0. 01 %。实际吊杆位置与监视吊杆位置误差不超过2 mm。现场吊杆运动与监视器所得到的吊杆运动时差在0125 ms。满足现场要求。


20070117122358885.jpg


20070117122457769.jpg



  大规模舞台至少有40 路吊杆,现场微机需要进行大规模的数据采集,然后与上位机进行数据通信。利用该网络接口设计方案可以满足数据传输中的实时性、准确性要求。实验结果如表4 所示,通信的成功率很高,对于丢失的数据包可以在应用层协议中处理。重新发送丢失的数据包,直至数据包正确传送到目的地。


 


总 结



智能仪器网络接口的设计,使仪器、设备方便地接入以太网,实现计算机对仪器仪表的远程控制、监测。并且满足数据传输的实时性、高效性要求。这种接口的实现使计算机和网络在智能仪器中发挥了举足轻重的作用,利用计算机可以实现硬件难以实现的功能,同时可以降低仪器、设备的制作难度。该方案在大规模分布式位置控制系统设计中得到了应用,并且很好地实现了该系统在数据传输中的实时性和高效性要求。




show_label.gif标签:  DSP  单片机  RTL8019AS  以太网接口
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条