Professional Documents
Culture Documents
1. 介绍
计算机通信系统尤其是因特网在日常生活中的作用越来越重要,并且呈加速发展的趋
势。如今,上网不再是个人电脑和网络工作站的专利,很多用微控制器(或称单片机)
控制的嵌入式系统也成为了因特网网络节点中的一员,通常,这种嵌入式系统可称为
嵌入式因特网终端。试想,如果通过网页浏览器,能够完成对远处的微控制器控制,
并能够接收到微控制器采集的信号,那将给人们的生活带来很大的便利和极大地推动
生产力的发展。打个比方,如果通过办公室的一台连接到因特网的电脑和安装在家里
的嵌入式控制器,人们就可以了解到家里或者发生的一切,那么家居防盗等一系列问
题将会等到很好的解决。
2. 协议基础
图 1 OSI 七层协议与因特网四层模型的对应关系
2.1 以太网(Ethernet)[1]
以太网是目前用得最广泛的一种局域网,它在因特网四层网络模型当中,属于网络层。以太网网络中的每
个节点具有相同的访问网络的权利,它们之间对网络占用是通过具有冲突检测的载波监听多路访问
( CSMA/CD )的方法来实现的。数据采用曼彻斯特编码,网络中的连接一般采用双绞线或同轴电缆。以太网
节的循环冗余码校验(CRC)值,用于保证数据帧的完整性。
下层网络协议只有最基本的要求,很容易在不同的网络上建成,因而非常流行。ISO/OSI 运输层标准中的
数据流的传输服务。用户数据可以有序而且可靠的传送。在一个分组可能发生丢失、破坏、重复、延迟或失序
情况下,TCP 服务可提供一种可靠的进程间通信机制,协议可以自动纠正各种差错。
数据链路层的服务向传输层提供服务。IP 从源运输实体取得数据,通过它的数据链路层服务传给目的主机
的 IP 层。网关通过下一网络数据报传到目的主机或下一网关。
2.4 地址转换协议 ARP(Address Resolution Protocol)
只需给出该主机的网际地址即可。可见,基本网络的物理编址对网络层服务是透明的。
2.5 其它协议
它们在因特网的数据交换当中都有什么重要的作用,本文限于篇幅,不一一详细介绍。
3. 硬件设计[1]
CS8900A,下面简单介绍一下这两个组件,再论述硬件实施方案。
3.1 MSP430F149[2]
3.2 CS8900A[3]
CS8900A 低功耗的以太网控制器,被广泛应用于工控机中。其高集成度的设计(在应用当中只需要极少
的外围元件)和简单容用的总线接口,非常适用于本设计。目前,许多的以太网控制器都只提供 PCI(周
MSP430F149 之间的电平匹配。
3.4 系统硬件原理
整个系统的硬件原理如图 2 所示,下面详细分析图中的各个模块。
CS8900A 的 XTAL1(97)引脚和 XTAL2(98)引脚接一 20MHz 的晶振,由于其片内 XTAL 处集成了电容,
所以,不需要外接电容。CS8900A 的复位引脚为高有效,在芯片上电工作时,需要一个复位信号,这由
4. 软件设计
4.1 以太网模块
以太网部分程序的主要作用是对以太网控制器 CS8900A 进行驱动、以函数的形式给其它模块提供读写
写数据了。
4.2 TCP/IP 模块
TCP/IP 模块是整个系统软件的关键,定义了使用网络来收发数据的协议,使用以太网模块所提供的各种
在数据包收发的过程当中,不同的任务需要不同的处理时间,这个时间可以使用
MSP430F149 的 定 时 器 Timer_A 来 提 供 , 不 过 必 须 注 意 的 是 , 在 使 用 定 时 器
Timer_A 之前,必须进行初始化,这点同使用其它微控制器是相似的。为了减少数据
包 发送 不成 功造 成的 错误 ,当 接收 机接 收到 数据 后, 其应 当返 回一 个接 收正 确信 号,
当发送机超过设定时间,仍接收不到正确的接收信号时, TCP/IP 模块自动进行数据
包重发,这个过程可以通过相应的变量和函数来实现。
为 了使 用户 既能 够使 用现 在的 应用 ,也 能够 建立 适用 自己 要求 的嵌 入式 应用 ,在 整
个软件的编制过程中,应当留一下 API 函数,以便于用户无需对 TCP/IP 协议有过多
的了解也能够在原有程序的基础上进行二次开发。本软件充分考虑了这一点,给用户
留 出 了 很 多 AIP 函 数 , 主 要 的 有 , TCPClose() 、 TCPReleaseRxBuffer() 和
TCPTransmitTxBuffer() 等。其中,函数 TCPClose() 的主要用处是用于关闭打开了
的 连接 ,在 关闭 连接 之前 ,发 送的 数据 包还 留在 发送 缓冲 区中 以保 证正 确发 送, 连
接关闭之后,用户要重新建立连接的话,必须重新设置 IP 地下、重新分配 I/O 口和重
新建立连接。 TCPReleaseRxBuffer() 的主要作用是,在读出缓冲区的数据之后,调
用此函数,无需再保存已正确读出的数据包,这样就可以腾出缓冲区用于存放新的数
据包。用户可以使用函数 TCPTransmitTxBuffer() 通过已建立的连接发送数据,但是,
在使用该函数前,用户要先检查 SOCK_TX_BUF_RELEASED 标志,确定是否有可
用的发送缓冲区。本设计中,还提供了检查连接状态和收发状态的变量 (标志),如
SOK_ACTIVE 、 SOCK_CONNEDTED 等。
4.4 HTTP 应用
5. 结束语
随 着网 络技 术的 发展 ,需 要进 行网 络连 接和 通信 的微 型嵌 入式 因特 网终 端越 来越 多,
这不仅可以应用于日常生活中,也可以应用于许多工业现场,特别是在那些分散、共
享数据或需要共享某些信息的工业现场嵌入式网络终端的技术优质更加明显。此外,
MSP430 系列单片机的功耗非常低,很好的解决了在某些特殊场合下的电源问题。由
此可见,本文所论述的设计方案具有很大的应用前景。
参 考 文 献
[1] Texas Instruments. MSP430 Internet Connectivity[Z].2004.2
[2] Texas Instruments. MSP430x13x, MSP430x14x, MSP430x14x1 MIXED
SIGNAL MICROCONTROLLER[Z].2000.7
[3] Cirrus Logic. CS8900A Product Data Sheet[Z] .2001.4