微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 网络单片机PIC18F97J60的开发与应用

网络单片机PIC18F97J60的开发与应用

时间:05-24 来源:互联网 点击:
Microchip公司生产的PICl8F97J60单片机将PIC18系列高端8位单片机与完整的以太网控制器集成在一起,并且包括了MAC、PHY和 RAM收发缓冲器。利用这一64或100引脚封装的系列器件享有的完善网络连接功能,可以实现成本低、简单易用的以太网应用方案。此外,利用 Microchip公司免费提供的TCP/IP软件栈,能够大大缩短开发时间。

1 PICl8F97J60网络单片机

1.1 网络特性

PICl8F97J60系列器件具有嵌入式以太网控制器模块。这是一个完整的连接解决方案,完全实现了介质访问控制(Media Access Control,MAC)和物理层收发器(Physical Layer Transcei、ver,PHY)模块,只需使用2个脉冲变压器和一些无源元件就可以将单片机直接与以太网相连。以太网模块符合IEEE 802.3中所有关于双绞线网络10Base—T连接的规定。它在内部实现了一些数据包过滤机制,用于限制传入的数据包。它提供了一个用于实现快速数据吞吐的内置DMA模块,以及硬件IP校验和计算;另外还提供了2个用于指示链路和网络活动的LED输出。以太网模块包含以下5个主要功能模块:

①PHY收发器模块——对传输双绞线接口上的模拟数据进行编码和解码,并通过网络发送和接收;

②MAC模块——实现了符合IEEE 802.3规范的MAC逻辑,并提供了用于控制PHY的MIIM(Media In—dependent Interface Management);

③独立的8 KB RAM缓冲区——用于存储已经接收和将要发送的数据包;

④判优器——在单片机内核、DMA、发送和接收模块发出请求时,控制对RAM缓冲区的访问;

⑤寄存器接口——用作以太网模块和单片机特殊功能寄存器(SFR)之间命令和内部状态信号的译码器。

1.2 应用实例

图1表明,基于互联网的远程控制系统是由连接互联网的主PC机和监测装置构成的。其中,监测装置代表某个接入网络的嵌入式系统,它既可以是工控应用中的温度、压力及流量等监控设备,也可以是家庭应用中的网络家电等。网络单片机为该监测装置的核心,其不仅可以采集和处理温度或流量等传感器数据,还具有嵌入式网关的功能,可以实现监测装置的网络接入。互联网上的主PC机通过Web形式访问监测装置,实现远程监控。



2 开发工具

2.1 PICDEM.net2开发板

PICDEM.net.2开发板除了包含PICl8F97J60核心器件外,与网络接入有关的功能还包括:串行EEPROM提供256 Kb(32 KB)存储空间,可以用来存储网页和一些配置信息;可以通过SPI接口编程;RJ一45(10Base一T)标准连接器,其J1连接到 PICl8F97J60;RJ一1l(6线)标准连接器,用于通信和器件编程或调试的USB连接;串口RS232,可以用来配置芯片的IP和以太网地址,也可以用来下载新的网页到EEPROM等。

此外,开发板还提供了Mirochip公司的独立以太网控制器ENC28J60,用来开发不带以太网控制器的单片机,可通过标准的SPI接口连接。开发板提供的其他设备包括LCD显示器、LED指示灯、按钮开关、温度传感器、用于连接扩展卡的插座或边缘连接器、实验用布线区(面包板)及电源等。

通过PICDEM.net2开发板可以方便地开发各种定制的PICl8F97J60应用系统,经裁剪或扩充,完成应用系统的硬件电路设计。

2.2 在线调试器MPLAB ICD2

选择MPLAB ICD2作为在线调试器和烧写器。Microchip公司提供的在线调试器MPIAB ICD2是一款功能强大而成本低的运行时开发工具,通过RS232或高速USB接口与主PC机相连。与ICE相比,其仿真功能有一些限制,但有如下突出的优点:在产品量产后,只要保留6芯插针,就可直接与ICD2相连;ICD2可以在目标应用中对固件再编程,而不需要其他在线烧写器设备。通信方式使用默认的USB接口方式。为了避免目标板负载过重对ICD2带来损害,应采用目标板独立供电。

2.3 Microchip TCP/IP协议栈

Microchip公司提供免费的TCP/IP软件栈,为应用开发提供了便利。Microchip TCP/IP协议栈是一套程序,它服务于标准的、基于TCP/IP的应用程序,或者应用在定制的、基于TCP/IP的应用程序中。本应用系统使用的是该协议栈的4.02版本。

类似于TCP/IP参考模型,Microchip TCP/IP协议栈将TCP/IP协议栈分为多层,如图2所示。每层的实现代码驻留在一个独立的源文件中,而服务和应用程序编程接口(API)是通过头文件或包含文件定义的。与TCP/IP参考模型不同的是,Microchip TCP/IP协议栈中的许多层可以直接访问在它下面的一层或多层。关于一个层是否绕过相邻模块来获得所需的服务,主要根据开销的大小,以及服务是否需要智能处理后才能传递到下一层来决定。与传统TCP/IP协议栈实现方法的不同之处是添加了2个新模块:StackTask和ARPTask。 Stackrrask管理协议栈及其所有模块的操作,而ARPTask管理地址解析协议(Address ResohJtion Protocol,ARP)层的服务。Microchip TCP/IP协议栈使用了协同式多任务处理技术。在协同式多任务处理系统中,同时存在多个任务,每个任务执行自己的作业然后交回控制权,这样下一个任务才能够执行作业。StackTask和ARPTask都是协同式任务。Microchip TCP/IP协议栈尽管没有实现通常TCP/IP协议栈中的所有模块,但是在需要时可以将它们作为单独的任务或模块来实现。



2.4 Stack Manager

Microchip TCP/IP协议栈由多个模块组成。在使用模块之前,用户必须查阅并了解它的用途和API。函数的语法、参数、返回值、前提条件等具体问题可以在编程时针对具体的问题单独查阅。

使用Microchip TCP/IP协议栈的任何应用程序都必须执行一定的步骤,以确保在适当的时间调用相应的模块(例如IP、TCP、UDP和ICMP)。无论主应用程序逻辑如何,管理协议栈模块的任务都始终相同。

为了减轻主应用程序管理各个模块的负担,Micro—chip TCP/IP协议栈使用了一个特殊的应用程序层模块,称为“StackTask”或“Stack Manager”。Stack Manager以协同式任务处理方式来实现。被赋予处理时间后,它将轮询MAC层是否存在有效的数据包。若接收到一个包,它将对其进行解码并路由到相应的模块做下一步的处理。

Stack Manager。不是Mirochip TCP/IP协议栈的一部分,它与协议栈一起提供给用户。这样主应用程序除了自己的工作以外,不需要管理协议栈模块。执行StackManager任务之前,必须通过调用StackInit()函数来对其进行初始化。这个函数按正确的顺序初始化Stack Man—ager变量和各个模块。一旦调用Stacklnit(),主程序就必须定期调用StackTask()函数,以确保及时处理所有进入的包,以及所有的超时和错误条件。

2.5 MicrOChip HTTP服务器

Microehip HTTP服务器以协同式任务处理方式实现,它与Microchip TCP/IP协议栈以及用户的主应用程序共存。这个服务器自身在源文件“HTTP.c”中实现,使用一个用户应用程序实现2个回调函数。

这里提供的HTTP服务器不会实现所有的HTTP功能,它是面向嵌入式系统的最小型服务器。用户可以按需要方便地添加新功能。HTTP服务器主要功能包括:支持位于内部程序存储器或外部串行EEPROM中的网页、简单文件系统(MPFS)、动态网页内容生成和基于PC的程序,以及从给定目录创建MPFS 映像等。

对于Microchip协议栈及其HTTP服务器,特定格式是MPFS。如果MPFS映像要存储在外部EEPROM中,则可能需要在应用程序中包含编程方法。HTTP服务器使用文件“index.htm'’作为它的缺省网页。这要求所有应用程序都将名为“index.htm"的文件作为它们MPFS映像的一部分。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top