单片机与TCPIP网络接口电路图详解
- 格式:doc
- 大小:277.00 KB
- 文档页数:3
RS485简介(zz)2009-11-17 15:08智能仪表是随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断。
究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。
最初是数据模拟信号输出简单过程量,后来仪表接口是RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能。
随后出现的RS485解决了这个问题。
RS485接口RS485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。
RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓朴结构在同一总线上最多可以挂接32个结点。
在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。
很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。
而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有二个原因:(1)共模干扰问题:RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。
但人们往往忽视了收发器有一定的共模电压范围,RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。
当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。
(2)EMI问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。
由于PC机默认的只带有RS232接口,有两种方法可以得到PC上位机的RS485电路:(1)通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号,对于情况比较复杂的工业环境最好是选用防浪涌带隔离珊的产品。
AN833简介在Microchip单片机上实现TCP/IP(传输控制协议/网际协议)不需要任何创新之举。
感兴趣的开发人员可以很容易找到许多Microchip产品的商业和非商业的TCP/IP实现方案。
本应用笔记详细说明了Microchip公司自己免费提供的TCP/IP协议栈。
Microchip TCP/IP协议栈是一套程序,它服务于标准的、基于TCP/IP的应用程序(HTTP服务器或邮件客户机等),或者使用在定制的、基于TCP/IP的应用程序中。
为了更好地说明这一点,在本文档的末尾描述了一个完整的HTTP服务器应用程序,同时给出了协议栈的源代码。
Microchip TCP/IP协议栈是按照模块化方式实现的,它所有的服务创建了高度抽象的协议层。
潜在用户使用时不需要知道TCP/IP规范的所有复杂细节。
实际上,只对实现HTTP服务器应用程序感兴趣的用户并不需要知晓任何有关TCP/IP的具体知识。
(关于HTTP服务器的具体信息请参见从第77页开始的部分。
)本应用笔记并没有深入讨论TCP/IP协议。
建议对该协议细节感兴趣的用户阅读RFC(Request For Comment)文档。
在本文档的末尾可以找到一部分主要RFC编号列表。
协议栈架构许多TCP/IP的实现方案都遵循了称为“TCP/IP参考模型”的软件架构。
基于此模型的软件被分成多层,一层一层地堆叠(故称为“TCP/IP协议栈”),并且每层接受来自该层下面的一层或多层的服务。
图1中显示了TCP/IP协议栈模型的一个简化版本。
根据规范,许多TCP/IP层都是“活动的”,这意味着不仅在被请求服务时,而且在像超时或新包到达这样的事件发生时,它们都会作出反应。
带有大量数据存储器和程序存储器的系统可以十分容易地满足这些要求。
多任务操作系统可以提供额外工具,帮助程序实现模块化。
但是当系统只使用8位单片机以及几百字节的RAM 和有限的程序存储器时,该任务变得十分困难。
IP Video Doorbell SystemTechnical Paper Ver:1.0IP可视对讲系统技术白皮书设计与规格如有更改,恕不另行通知。
本手册的解释权与所有版权全部保留。
-------LENET Technologies.目录目录 (3)第一章前言 (4)第二章系统介绍 (5)2.1 系统示意图 (5)2.2 系统特色 (5)2.3 功能特点 (7)2.4 关键技术剖析 (10)2.5 数字对讲产品的客户价值 (10)第三章产品介绍 (12)3.1 TCP/IP对讲系统门口机 (12)3.2 TCP/IP对讲系统室内机 (13)3.3典型配置 (13)第四章系统对比 (15)4.1 TCP/IP对讲系统与传统总线制楼宇对讲系统对比 (15)第五章网络架构常识 (16)5.1 概述 (16)5.2 方案设计 (16)5.3 布线产品总体性能要求 (17)5.4 主要设备性能指标 (18)第一章前言随着国民经济的发展,人民生活水平日益提高,一些小区纷纷使用现代通信技术和自动控制技术为小区的服务与管理者提供高效方便的管理、服务手段,为家庭提供安全舒适的居住环境。
同时国家建设部也制定了智能小区的三个级别:基本型标准中包括家庭防盗、防火、防煤气泄漏、紧急求助等安防系统、三表抄送系统、小区管理监控中心等系统。
普及型标准则增加了闭路电视监控系统、电子巡更系统、消防联动系统、停车场管理系统、家居自动化系统、综合信息管理系统等。
高级标准中则在普及型标准的基础上增加了综合通信网络系统、家庭通信网络接口等系统,以满足信息化社会的需求。
智能小区是在智能化大楼的基本含义中扩展和延伸出来的,它通过对小区建筑群四个基本要素(结构、系统、服务、管理以及它们之间的内在关联)的优化考虑,提供一个投资合理,又拥有高效率、舒适、温馨、便利以及安全的居住环境。
为适应国家加快住宅建设发展的形势,增强小区住宅建设的科技含量,LENET通过广泛、深入得考察论证,结合国内外智能住宅现状和发展趋势,集成国内外先进的监测,控制和布线产品设备,推出适合我国国情的住宅小区智能化管理系统。
TCP/IP基本概念解释及CH395应用说明1、应用基础TCP/IP通常被认为是一个四层协议系统,自下而上依次可分为:链路层、网络层、运输层和应用层,TCP/IP协议簇中不同层次对应的协议有:TCP和UDP是两种比较重要的传输层协议,两者都使用IP作为网络层协议。
TCP是一种面向连接的传输,能够提供可靠的字节流传输服务。
UDP是一种简单的面向数据报的运输层协议,与TCP不同的是UDP无法保证数据报文准确达到目的地。
TCP为网络设备提供了高可靠性的通讯,它所做的工作包括把应用程序交给他的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组超时时钟等,由于运输层提供了高可靠性的端到端的通信,应用层客户忽略所有细节。
而 UDP则为应用层提供一种非常简单的服务,速度较TCP快,它只是把数据报从一个网络终端发送到另一个网络终端,但是并不保证该数据报能够达到另一端,任何必需的可靠性都必须由应用层来提供。
IP是网络层上的协议,同时被TCP和UDP使用,TCP和UDP的每组数据都通过IP层在网络中进行传输。
ICMP是IP协议的附属协议,IP层用它来与其他主机或者路由器交换错误报文或者其他重要信息,例如CH395产生不可达中断,就是通过ICMP来进行错误报文交换的。
PING也使用了ICMP协议。
IGMP是Internet组管理协议,主要用来把一个UDP数据报多播到多个主机。
ARP为地址解析协议,用来转换IP层和网络接口层使用的地址。
2、CH395 TCP/IP协议栈实现CH395内部集成TCP/IP协议栈,提供链路层、网络层、运输层服务,方便客户直接进行应用层程序开发,缩短产品开发周期。
CH395 是以太网协议栈管理芯片,用于单片机系统进行以太网通讯,CH395 支持三种通讯接口:8 位并口、SPI 接口或者异步串口,单片机/DSP/MCU/MPU 等控制器可以通过上述任何一种通讯接口控制 CH395 芯片进行以太网通讯。
嵌入式TCP/IP协议单片机技术在网络通信中的应用摘要:介绍了嵌入式TCP/IP协议单片机在网络通信中的数据传输技术。
将TCP/IP协议嵌入式单片机中,借助网卡芯片CS8900实现了单片机在局域网内和通过局域网在因特网上的数据传输。
用户终端以单片机系统板为媒介,通过网络与远程数据终端实现数据通信。
关键词:TCP/IP协议单片机因特网局域网网卡芯片在因特网上,TCP/IP协议每时每刻保证了数据的准确传输。
在数据采集领域,如何利用TCP/IP协议在网络中进行数据传输成为一个炙手可热的话题。
在本系统中,笔者利用TCP/IP协议中的UDP(用户数据报协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议成功地实现了单片机的网络互连,既提高了数据传输的速度,又保证了数据传输的正确性,同时也扩展了数据传输的有效半径。
1 TCP/IP协议简介TCP/IP协议是一套把因特网上的各种系统互连起来的协议组,保证因特网上数据的准确快速传输。
参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层、传输层、网络层、链路层。
(1)应用层网络应用层要有一个定义清晰的会话过程,如通常所说的Http、Ftp、Telnet等。
在本系统中,单片机系统传递来自Ethernet和数据终端的数据,应用层只对大的数据报作打包拆报处理。
(2)传输层传输层让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。
在本系统中使用UDP数据报协议。
(3)网络层网络层让信息可以发送到相邻的TCP/IP网络上的任一主机上,IP协议就是该层中传送数据的机制。
同时建立网络间的互连,应提供ARP地址解析协议,实现从IP地址到数据链路物理地址的映像。
(4)链路层由控制同一物理网络上的不同机器间数据传送的底层协议组成,实现这一层协议的协议并属于TCP/IP协议组。
ZLIP使用简介 李章林1 ( 1 南开大学电子应用实验室,wzzlin@nankai.edu.cn) 1 目录结构:TCP/IP协议栈程序所在目录。
:Icmp协议。
:IP层。
:网络接口层。
:TCP协议层。
:TCPIP内存管理程序。
:网络接口协议所在目录。
:ARP协议。
:以太网接口协议。
:RTL8019AS以太网接口芯片驱动程序。
:全局函数和宏定义所在目录:应用层协议所在目录:主程序,这里包含一个如何使用的例子程序。
KeilC目录下是KeilC51的工程文件所在目录。
用KeilC51打开Ex1.Uv2。
MCU目录下是各种类型的51单片机的头文件。
2 概述单片机上网技术,是当前的一个热门技术。
单片机上网技术中的一个重要部分是在单片上实现TCP/IP协议栈。
现在可获得的TCP/IP源代码一般并不为51单片机设计,而51单片机和KeilC51编译器有其自身的特点:存储类型、函数指针、重入函数等,ZLIP就是针对这些特点设计的TCP/IP协议栈。
ZLIP设计的目标是:1)精简TCP/IP协议栈,以减小代码量。
ZLIP目前没有支持UDP协议,ICMP协议也只支持其中的echo协议(响应ping数据包)。
lwIP是一个功能全面的TCP/IP协议栈,但是相对51来说代码量较大。
2)应用层接口简单,以兼容通用的socket接口。
uIP有很小的代码量和减小代码量(选择AVR为目标器件时,代码为5K左右)和RAM使用量(100字节左右)。
uIP采用了不保存需要应答的数据包的RAM使用方案,没有和BSD的套接字接口兼容,应用层接口较复杂。
3)针对KeilC51编译器设计。
所有的外部变量都使用了xdata类型,全部指针都为明确存储类型的指针,需要重入的函数已经声明为reentant,使用KeilC的小模式下编译。
使用12M晶振、KeilC编译器、89C52单片下测试的技术参数如下: 表1:技术参数代码量(字节) 外部RAM使用量(字节) 发送速度(字节/秒) 14841 11068 5.892K ZLIP的特点如下:1)有适中代码量和RAM使用量。
[转载]c语⾔实现单⽚机的tcpip通信repost原⽂地址:c语⾔实现单⽚机的tcp/ip通信作者:谢绝关注#include "system.h"#include "tcpip.h"#include "drivers.h"// 定义应⽤:1 表⽰开启功能,0 表⽰关闭功能#define cTCP_RS232 1 // TCP <-> RS232 的应⽤,只⽤于服务模式#define cTCP_ADAC 1 // TCP <-> Audio, 主要⽤于服务,也可以⽤于客户。
要求⾼带宽: > 912Kbit// 分配本地⽤户⾃定义服务模式应⽤TCP端⼝号,不能与知名端⼝相同!如:23, 80// 注意:对不同的TCP事件使⽤不同的本地端⼝号,有助于快速查找TCP事件⽽不需要判断IP是否相同!// 这样做能使本地快速响应。
#define cTCP_ListenPort_TEST 0x1000 // 4096#if cTCP_RS232 == 1#define cTCP_ListenPort_RS232 0x2000 // 8192#endif#if cTCP_ADAC == 0#define cTCP_ListenPort_ADAC 0x3000 // 12288#endif// 客户应⽤模式的本地TCP端⼝号。
不能与知名端⼝相同!如:23, 80// 注意:对不同的TCP事件使⽤不同的本地端⼝号(包括:本地侦听端⼝),有助于快速查找TCP事件⽽// 不需要判断IP是否相同!这样做能使本地快速响应。
#if (cTCP_ADAC == 1) && (TCP_ACTIVE_OPEN == 1)#define cTCP_ActivePort_ADAC 0x3001 // 12289#endif// 分配系统应⽤临时缓冲区(按 wrod 存储)UINT16 guwAppBuf[cAppSizeMax];//--------------------------------------------------------------------------------------main(){#if TCP_ACTIVE_OPEN == 1UINT16 temp[2];#endif// 1. Hardware initialize: SPCE061ASP_IO_INIT();// 2. Open and Enable Hardware interrupt 2Hz and Clear WatchDog!SP_OpenTime2();// 3. Hardware initialize: RTL8019ASRTL8019AS_RESET();RTL8019AS_INIT();// 4. vIP4 TCP/IP initializemsip_Init();// 5. We listen test portmsip_Listen(cTCP_ListenPort_TEST); // ⽤于侦听来⾃链路测试的TCP包#if cTCP_RS232 == 1SP_UART_INIT(C_UART_Baud_115200); // Hardware initialize: UART of SPCE061Amsip_Listen(cTCP_ListenPort_RS232); // ⽤于侦听来⾃RS232的TCP包#endif#if cTCP_ADAC == 1// SP_ADAC_INIT(cSample_4096); // Open ADAC// SP_ADAC_INIT(cSample_8192); // Open ADAC// SP_ADAC_INIT(cSample_16384); // Open ADAC// SP_ADAC_INIT(cSample_32768); // Open ADAC// SP_CLOSE_FIQ(); // 关闭FIQ中断,同时也禁⽌了ADACmsip_Listen(cTCP_ListenPort_ADAC); // ⽤于侦听来⾃远端的Audio的TCP包#endif#if (cTCP_ADAC == 1) && (TCP_ACTIVE_OPEN == 1)// for test audio, wo active link remote: 192.168.0.60temp[0] = ((192<<8)|168);temp[1] = ((0<<8)|30);msip_Connect(cTCP_ActivePort_ADAC, temp, cTCP_ListenPort_ADAC);#endif// 6. We do TCP/IP Check Looploop:// 接收新的以太包,并处理if ((guwEthLen = ether_Receive()) != 0){switch (cptEthHdrBuf->EthType){case cEthType_Arp:msip_Arp_In();break;case cEthType_Ip:msip_Input();}}// ARP表⽼化处理if (guwMsg_Route & cM_ARP_TIME){msip_Arp_Time();}// TCP事件轮询if (guwMsg_Route & cM_TCP_PERIODIC){msip_Periodic();}goto loop;}// SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB-SUB//--------------------------------------------------------------------------------------//// |--------------| |-----|----------|------| |------|--------|// |⼯业设备|RS232| <---> |RS232|核⼼嵌⼊板|TCP/IP| <---> |TCP/IP|普通PC机|// |--------------| |-----|----------|------| |------|--------|////-------------------------------------------------------------------------------------void userapp(){switch (gptConn->LocalPort){#if cTCP_RS232 == 1case cTCP_ListenPort_RS232:goto link_rs232;#endif#if cTCP_ADAC == 1 // ADAC ⼯作时:由于双向通讯,所以Listen和Active处理是⼀样的!case cTCP_ListenPort_ADAC:goto link_adac_listen;#endif#if (cTCP_ADAC == 1) && (TCP_ACTIVE_OPEN == 1) // ADAC ⼯作时:由于双向通讯,所以Listen和Active处理是⼀样的!case cTCP_ActivePort_ADAC:goto link_adac_active;#endifcase cTCP_ListenPort_TEST:goto test_net;default:return;}#if cTCP_RS232 == 1link_rs232: // 与RS232透明传输通讯:本系统的⼀个应⽤。
--89c52单片机部分
——外部存储器62256和373。
--这是外部存储器62256(32K字节的RAM),62256的
DATA0--DATA7接单片机的P0口。
/OE接单片机的/RD
/WE接单片机的/WR
/CE接单片机的P2.7
A0--A14接单片机的P2.0-P2.6
----373的
DATA0--DATA7接单片机的P0口
/OE接地
LE接单片机的ALE。
---因此外部存储器62256占用单片机的外部数据地址空间0000H--7FFFH,共32K字节。
我们使用外部RAM的目的是提高单片机的数据传输速度,和复杂的TCP/IP的处理。
由于以太网的包最大可以有1500多字节,89c52单片机是无法存储这么大的包的,只有放到外部的RAM里。
同时这外部的RAM也用作串行口的输入输出缓冲。
以使单片机可以高速的吞吐数据。
(用网卡上的RAM来代替 62256会影响速度)
----MAX232,24c02
--24C02是IIC总线的eeprom,可以用来存储用户的一些设置,比如IP地址,网关等。
SCL接单片机的T1(P3.5)
SDA接单片机的INT1(P3.3)
---MAX232为串口电平转换电路。
CPUTXD接单片机的TXD
CPURXD接单片机的RXD
PCRXD和PCTXD是RS-232电平,为标准串口电平。
数据可以从串口输入到单片机,单片机再把数据送到网卡传出去。
晶振可以用11.0592Mhz,也可以用22.1184Mhz,或更高的频率。