词条 | 单片机TCP/IP开发板 |
释义 | 单片机TCP/IP开发板(或称之为单片机TCP/IP学习板)是为提供用户学习单片机TCP/IP协议栈技术,从而设计自己的基于单片机TCP/IP项目而提供的一种开发板。51单片机、AVR单片机、PIC单片机上实现TCP/IP协议栈就比较复杂,因为TCP/IP协议栈对CPU 的速度、内存消耗要求比较高。于是在单片机上实现TCP/IP协议栈,如果完全从头开始实现,则需要几个月到几年的实现,对于单片机上网项目的开发是一个重点和难点。于是就需要单片机TCP/IP开发板。这里主要以51单片机上的TCP/IP协议栈为例。 1 单片机TCP/IP开发板的用途目前单片机上网技术是一个热门技术,很多高校学生选择与此相关的毕业设计,同时高校也有与此相关的项目。为了快速实现单片机TCP/IP,可以通过使用单片机TCP/IP开发板来实现。一般一个单片机TCP/IP开发板需要包含如下的内容: 1. 单片机TCP/IP协议栈:用户可以根据协议栈提供的用户接口来实现TCP的发起连接、接受连接、发送数据、接收数据、关闭连接等操作。最好是该协议栈能够兼容BSD socket接口。 2. 硬件电路板及其相关连接线:用此硬件可以建立嵌入式TCP/IP实验环境。 3. 硬件原理图:这可以方便用户将相关硬件集成到自己的电路板中。 4. 配套开发工具:在嵌入式TCP/IP实验环境中必须要有PC机端的软件,用以和开发板进行通信。 2 如何选择单片机TCP/IP开发板2. 1 各类开发板 目前单片机TCP/IP一般有面向16位和32位的单片机的LWIP、面向8位单片机的uIP、面向51单片机的ZLIP等。目前51单片机上的TCP/IP协议栈以uIP和ZLIP为主,目前uIP的最高版本为V1.0,ZLIP的最高版本为ZLIP增值版V1.0。 2. 2 选择注意事项 作为单片机上网技术学习者,选择一款合适的开发板对于学习是事半功倍的,选择开发板时应该注意以下问题: 1. 价格考虑。TCP/IP开发板的最主要的东西在于TCP/IP协议栈本身,硬件的成本可以做得很低,所以不要因为低价而忽略了核心软件。对于TCP/IP协议栈可以从如下方面考虑: a) 稳定性:商家提供的TCP/IP协议栈是否有全面的测试,是否在连续PING的情况下不断线,是否在发送接受大数据量(例如10M以上)时不丢失任何字节?对于使用者来说如果协议栈不稳定,那么对于项目的顺利开发将带来很大麻烦。 b) 易用性:使用单片机TCP/IP开发板的用户一般都对于嵌入式TCP/IP的使用不太了解,这就需要开发板提供更加完善的资料和使用手册。包括函数定义、更多的例子程序等。 c) 厂家的技术:某些厂家只是仿冒他人的开发板,用户在使用中遇到的问题根本无法给于解答。这就需要用户问清楚该协议栈是否是厂家自己设计的。 2. 外包装和质量保证:外包装不好可是使得用户收到时,开发板已经在运输过程中受损而无法使用。 3 使用TCP/IP开发板下面介绍如何使用TCP/IP开发板来进行项目开发。 3. 1 开发板套件 为了建立单片机TCP/IP开发环境,需要一套开发套件,一般包含有:①开发板。②开发板光盘。③USB线。④对连网线。⑤普通网线。⑥串口线。其中TCP/IP协议栈相关资料在②开发板光盘上,③USB线一般用于从PC机USB端口获得电。网线用于和PC机通信,⑥串口线用于和PC机串口通信。 3. 2 开发板部件 一个开发板本身是一个单片机系统,包含有CPU、RAM、电源模块、网络模块。网络模块有很多选择,这里以RTL8019AS为例来说明。对于外部接口,最主要的是:⑨网线接口和⑩串口,它们是开发板和PC连接的接口。 3. 3 建立开发环境 建立单片机TCP/IP开发环境的步骤有如下几步: 1. 连线:连线是将开发板与PC机的串口连接,给开发板上电,然后将开发板连接到和PC在同一个网段中。 2. 安装软件:需要安装开发板的编译环境。对于51单片机,一般选用KeilC51作为编译器。设置IP地址,由于必须要求PC机和开发板处于同一个网段,所以需要将PC机的IP地址设置为开发板IP地址的同一个网段的IP地址(有时候也需要设置为特定的IP地址)。 3. 测试连接:一般可以通过PING命令,例如ping 192.168.0.2 –t来测试开发板和PC机的网络是否处于连通状态。 3. 3 开发基于开发板的新程序 这里介绍如何在不修改开发板硬件的基础上,开发自己的单片机TCP/IP程序。开发新程序就是在开发板提供的TCP/IP协议栈的基础上开发应用层的协议。由于TCP层和IP层都已经提供,所以用户不用考虑其中的运行机制。TCP/IP协议栈一般为用户提供如下的接口: 1. 初始化协议栈和释放协议栈的函数接口,类似Init(), Release()之类的函数。 2. 提供类似BSD socket的socket, sendto, recvfro, connect, bind, listen, accept, send, recv, closesocket, shutdown, getpeername, getsockname, htonl, htons, ntohl, ntohs, inet_addr,inet_ntoa,ioctlsocket,setsockopt, getsockopt,select等API函数,用户调用此类函数进行发起连接、接受连接、发送数据、接收数据、关闭连接等操作。 3. 接受连接、接收数据、被动关闭的处理:由于此类操作是上位机发起的,所以TCP/IP协议栈必须提供一套机制来处理此类事件的发生。一般来说有两种方法: a) 主动等待:例如使用BSD的recv()函数等待数据的到来。 b) 回调机制:采用类似MFC的OnReceive()函数的回调机制,也即是说在接收到数据的时候会自动调用OnReceive()函数。 那么用户如何使用以上的接口来实现远程控制、远程数据采集呢?方法很简单。 例如现在需要实现一个对LED灯的亮和灭的远程控制应用。首先PC机使用TCP/IP发送工具例如SocketDlgTest程序发送一个字节的“1”到开发板(根据开发板的IP地址发送)。开发板在OnReceive函数中发现收到的是“1”,那么就通过P1端口将灯打开;反之如果收到的是“0”则将灯熄灭。 如果是实现一个远程数据采集的应用,例如定时进行温度采集。首先PC机使用SocketDlgTest程序等待发来数据。开发板每隔一段时间采集一个数据,然后通过send()函数将数据发送给PC机(根据PC机的IP地址发送),这样PC就接收到了当前的远程温度数据。 4. 3 开发基于新硬件的程序 通过“开发基于开发板的新程序”一节的介绍后,开发基于新硬件的程序就相对容易了。这只要根据相应的硬件调整通过单片机的控制端口例如P1进行控制或者数据采集即可。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。