[资料分享] 基于AVR单片机的远程控制系统的研究

clj2004000   2008-8-29 10:10 楼主
随着互联网的日益普及,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备在逐步地走向网络化,以实现分布式远程监控、信息交换与共享。目前广泛使用的以太网以及TCP/IP 协议已经成为最常用的网络标准之一,其高速、可靠、分层以及可扩充性使其在各个领域的应用越来越灵活,很多情况下采用以太网和TCP/IP,能够简化结构和降低成本。
  目前大多数智能设备和仪表都是采用RS232/485 或USB通讯方式,不具备远程控制和数据传输能力。 利用以太网实现工业系统远程控制,通过互联网共享小型嵌入式设备的信息,是工业控制研究的发展趋势。本系统采用高速单片机ATmega64及RTL8019AS 以太网控制器,用嵌入式TCP/IP 协议可以实现TCP和UDP等网络功能,进一步实现HTTP协议服务,实现Web Sever 及接入Internet 的功能。
1 系统硬件设计
  系统的结构框图如图1所示, ATmega64是基于增强的AVR RISC 结构的低功耗8位CMOS微控制器。内带64KB的Flash、2KB的E2PROM、4KB的SRAM。由于其先进的指令集以及单时钟周期指令执行时间,ATmega64 的数据吞吐率高达1MIPS/MHz,从而可以满足系统在功耗和处理速度方面的要求。

  RTL8019AS 是一种高度集成的10MB以太网控制器,与NE2000兼容, 支持8位、16位数据总线;内置16KB SRAM缓存;可连接同轴电缆和双绞线,并可自动检测所连接的介质。以太网隔离滤波器选用20F00IN。
  RTL8019AS 与主处理器的接口方式有三种:跳线方式、PNP(即插即用)方式和免跳线方式。RTL8019AS 的第65 脚JP 决定网卡的工作方式,本设计中JP脚接高电平(VCC),即使用跳线方式,此时可以省掉外部E2PROM 93C46芯片。单片机通过I/O 模式访问以太网控制器。RTL8019AS 必须工作在8位模式下,其引脚IOCS16B经电阻接地。电路框图如图2所示。


  RTL8019AS本身具有地址译码功能,所有的控制功能或数据传输都是通过访问地址偏移为00H~1FH的寄存器完成的,所以只需要5条地址线(SA4~SA0)。在跳线方式下RTL8019AS的I/O 地址由引脚 IOS3~IOS0决定,将IOS3~IOS0对应引脚全部接低电平,这时RTL8019AS的I/O 基地址为300H,因此可以用SA8 和SA9进行片选接至单片机的PC7。当PC7引脚置高电平时选中RTL8019AS ,当PC7引脚置低电平时选中外部RAM,而将片选信号AEN接地,这种片选方式可以节省一个反向器。AUI 用来检测在AUI接口外部MAU 的使用情况。当该引脚未用时,应该接地。
  介质的选择由引脚PL1和PL0决定,RTL8019AS 还具有自动测试介质连接是否成功的功能。无屏蔽双绞线(UTP)电缆是目前使用最为普遍的电信介质类型。为了更方便地将嵌入式以太网模块接入到局域网中,本设计采用RTL8019AS 与双绞线连接的接口电路,即将PL0、PL1 接地。
2 以太网控制器的工作过程
  以太网控制器的 RAM 以 256 字节为一页,是按页存储的结构,16位RAM地址的高 8位又叫页码。以太网控制器的16KB RAM的地址从0x4000~0x7FFF,即从页0x40 到页0x7F,共有64 页用来接收和发送数据包。这64页RAM是一块双端口RAM。所谓双端口就是说有两套总线连接到该RAM,总线A 用于以太网控制器读/写片上RAM,总线B 用于单片机读/写以太网控制器上的 RAM。总线A又叫Local DMA,总线B 又叫 Remote DMA。
2.1 数据包的发送过程
  (1) 封装数据包:数据包在发送前,单片机将其按如图3所示的以太网帧格式封装好,并存放在外部SRAM。


  (2)通过远程DMA将数据包写入到 RLT8019AS 的数据发送缓冲区, 数据的目的缓冲区首地址和字节数由内部寄存器RSCR0、1设定。
  (3) 通过RTL8019AS的本地DMA将数据送入FIFO 缓冲器进行发送。
2.2 数据包的接收过程
  (1)本地 DMA 将需要接收的数据包存入到接收缓冲环中。
  (2)由远程 DMA 将接收缓冲环中的数据包写入到外部 SRAM 中。
  如果以太网控制器运行正常,接收到数据包时自动启动本地 DMA 将数据存入接收缓冲环中,也就是说第一步是由 RTL8019AS 自动完成的。但是,接收缓冲环的范围需要设置,PSTART、PSTOP 分别用于设置接收缓冲环的起始页和发送页,设置了接收缓冲环之后,接收到的第一个数据包放置的位置由当前页面寄存器CURR 决定。


3 服务器端工作过程
  图4 所示为本系统 TCP/IP 各层协议,链路层协议由单片机控制RTL8019AS 实现,而其他协议由单片机内部程序实现。
  服务器接收数据时,以太网驱动程序负责接收数据,由以太网控制器中断处理程序唤醒数据接收任务,由数据接收任务将接收到的数据帧交给网络接口层,网络接口层取出帧头,判断接收数据的类型,如果是ARP 报文,则将ARP 报文交给ARP 协议模块处理;如果是IP 数据包,则将IP数据包交给IP 协议模块处理,IP协议模块取出IP 首部信息,然后根据数据包的类型,将报文交给相应的协议模块(UDP 模块、TCP 模块或ICMP 模块)处理,UDP 模块或TCP 模块收到报文后,取出首部进行处理,并将用户数据交给应用程序。
  服务器发送数据时,将用户数据交给UDP协议模块或TCP 协议模块处理,UDP协议模块或TCP协议模块将其首部和数据封装成UDP数据包或TCP数据包,然后将封装好的数据包交给IP协议模块,IP模块在上层交给的数据包上添加IP首部,并封装成IP数据包,然后为 IP 数据包寻找路由,如果找不到相应路由,则向ICMP 协议发送出错报文,由ICMP 协议模块进行处理,在找到了合适的路由后,如果是以太网方式,则将数据包发送到网络接口层,利用ARP协议找到目的IP对应的物理地址,然后封装成以太网帧,由网卡驱动程序将以太网帧发送出去。
4 利用HTTP协议实现Web接收与发送控制数据
  在单片机系统中实现HTTP 协议服务端的功能,就可以为其他的客户机提供超文本信息,客户端只需要使用统一的浏览器就可以与服务器进行信息交换。
  超文本传输协议(HTTP)是目前通过Internet进行信息交换最主要的方式。在Internet上HTTP 通讯经常发生在 TCP/IP 连接之上。其缺省端口是TCP 协议的80 端口,当然,其他的端口也是可以使用的。HTTP 协议是建立在请求/响应(request/response) 模型上的。首先由客户建立一条与服务器的TCP链接,并发送一个请求到服务器,请求中包含请求方法、URI、协议版本以及相关的MIME(Multipurpose Internet Mail Extensions) 样式的消息。服务器响应一个状态行,包含消息的协议版本、一个成功或失败码以及相关的MIME 式样的消息(包含服务器的信息、资源实体的信息和可能的资源内容)。
  单片机服务器除了包括HTML 文件以外,还有一个HTTP 驻留程序,用于响应计算机端的控制请求。用HTML 文件编写的网络界面,可以通过浏览器访问并利用相应的按扭向服务器发送HTTP 请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。在这一过程中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet),每个数据包包括:要传送的数据;控制信息,即告诉网络怎样处理数据包。TCP/IP决定了每个数据包的格式。


  图5 是通过Web 浏览器看到的网络控制界面,必需将客户计算机与服务器系统的IP地址设置在一个段内。如本系统服务器IP地址设为192.168.0.10,客户机IP地址设为192.168.0.11,默认网关均为255.255.255.0。
  (1) 发送控制数据过程:①通过浏览器向服务器系统(单片机)发送HTTP 请求;②服务器系统通过HTTP服务程序查看网页程序中表单内输入变量的变化;③取出变量值,调用串口程序将数据发出。
  (2)接收采集数据过程:①系统HTTP 协议程序的http_serve 中调用串口程序接收串口数据,并用此数据取代其内部网页中的表格内“NO DATA”标记;②服务器系统把Web页面传送给用户界面的浏览器。
  用低成本的AVR单片机和以太网控制器,配合适当的网络协议,实现了通过网络对RS232接口设备的数据采集及系统控制。如对其进行适当的改变与扩展,便可以用于其他接口的仪器仪表,并应用于更广泛的领域。由于系统的控制器使用的是单片机,限于其内部资源,所以网页文件不能过大。

回复评论 (1)

基于MSP430单片机和nRF905的无线通信系统

引言
  随着信息技术的不断发展,人们对通信技术的需求越来越强,摆脱有线网络的束缚实现无线通信始终是大家关心的问题,当今无线通信研究越来越热,应用非常广泛,使人与人之间的通信更加方便快捷,更具有市场发展前景。

本文以Nordic公司的nRF905作为通讯的核心,设计了无线通信系统。

  系统设计

  无线通信系统,由两个部分组成:发送终端,接收终端。数据的发送和接收显示是借助于串口来实现的,通过PC机串口给发送终端送数据,然后发送终端通过nRF905把数据发送出去;接收终端通过nRF905接收数据,然后把接收到的数据通过串口传给PC机。系统框图如图1所示。

图1
无线系统的硬软件设计

  系统的硬件设计

  本系统采用的射频收发器为Nordic VLSI公司的nRF905, 工作电压为1.9~3.6V,工作于433/868/915MHz三个ISM频段,频段之间的转换时间小于650us。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器。高抗扰GFSK调制,数据速率为50kbps,独特的载波监测输出,地址匹配输出,数据就绪输出。ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,工作于接收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。nRF905的硬件连接电路图如图2所示。

采用的微处理器为TI公司的MSP430F149,它是一种超低功耗的混合信号控制器,具有16位RISC结构,CPU中的16个寄存器和常数产生器使MSP430能达到最高的代码效率。单片机通过采用不同的时钟源工作可以使器件满足不同功耗要求,适当选择时钟源,可以让器件的功耗达到最小。外设主要有存储器、时钟模块、定时器、USART和A/D转换器等。

此次设计主要用到了MSP430F149两个串口通信模块USART0和USART1,USART0作为UART使用,提供异步通信,通过MAX3232电平转换芯片提供RS-232接口和PC机进行通信,USART1作为SPI使用,提供同步通信,主要是和nRF905之间进行命令和数据通信。把MSP430F149的P2口作为一般引脚使用,与nRF905的其他引脚相连。对MSP430F149提供双晶振系统,低频晶振为32.768K,与微控制的XIN和XOUT相连,为RS-232接口提供频率支持,高频晶振为8M,和微控制器的XT2相连,为系统运行的主时钟。系统的整体设计相对较为简单,不过在此基础上可以实现遥测,无线抄表,工业数据采集,机器人控制等。发送和接收的硬件电路是一样的,系统设计主要硬件电路图如图3所示。
系统的软件设计

  系统软件设计包括下位机软件设计和PC机软件设计。前者主要是微控制器通过SPI口对nRF905的控制以及微控制器串口通讯的设计,后者包括串口通讯模块、主界面和数据库设计。

  }RFConfig;
  RFConfig RxTxConf=
  {
  10,
  0x01, 0x0c, 0x44, 0x20, 0x20, 0xcc,
  0xcc, 0xcc, 0xcc, 0x58
  };
  nRF905提供SPI口的读写指令,当CSN为低时,SPI接口开始等待一条指令,任何一条新指令均由CSN的由高到底的转换开始。下面主要介绍nRF905的发送流程和接收流程。

  发送流程:

  A.当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给nRF905,SPI接口的速率在通信协议和器件配置时确定;

  B.微控制器置高TRX_CE和TX_EN,激发nRF905的ShockBurstTM发送模式;

  C.nRF905的ShockBurstTM发送:射频寄存器自动开启;数据打包(加字头和CRC校验码);发送数据包;当数据发送完成,数据准备好引脚被置高;

  D.当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式。

  ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。

  接收流程:

  A.当TRX_CE为高、TX_EN为低时,nRF905进入ShockBurstTM接收模式;

  B.650us后,nRF905不断监测,等待接收数据;

  C.当nRF905检测到同一频段的载波时,载波检测引脚被置高;

  D.当接收到一个相匹配的地址,地址匹配引脚被置高;

  E.当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高

  F.微控制器把TRX_CE置低,nRF905进入空闲模式;

  G.微控制器通过SPI口,以一定的速率把数据移到微控制器内;

  H.当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低;

  I.nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。

  MSP430F149的串口通讯程序设计,主要是设定传输的速率为4800bps,数据传输为8位数,1个停止位,无奇偶校验。根据相应的发送端和接收端来设定发送模块和接收模块使能,发送中断和接收中断使能。

  在PC机软件设计中,串口通信模块负责PC机与下位机之间的数据通信。而主界面和数据库设计主要是方便对接收的数据进行管理。
  
  实验测试分析

  在发送和接收时利用示波器和万用表对nRF905的相关引脚进行测量分析如下:

  发射时nRF905的分析情况如表1所示。

接收时nRF905的分析情况如表2所示。
结语

  本设计实现了基于MSP430F149和nRF905的无线通信。发送端和接收端之间的距离为80米,之间没有任何有线连接,通过发送端发送数据,在接收端能正确接收数据并显示在PC机上。实验表明,该系统实时性好,性能可靠。
点赞  2008-8-29 10:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复