TTLTCPIP转换研究Word文档格式.docx
- 文档编号:20250852
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:19
- 大小:663.08KB
TTLTCPIP转换研究Word文档格式.docx
《TTLTCPIP转换研究Word文档格式.docx》由会员分享,可在线阅读,更多相关《TTLTCPIP转换研究Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
各种智能家电正逐步地走进千家万户,随着智能化的发展,家电上网必将成为未来的发展方向。
本设计旨在研究如何在现有的家电模式下将家电的数据通过数据格式的变换,实现家电上网功能。
用C51作CPU、用ENC28J60作网卡,并通过uIP移植接入以太网实现家电上网,最终实现通过以太网控制家电。
关键词:
Ethernet;
TCP/IP;
uIP移植;
SPI接口;
单片机通信
1引言
随着Internet技术的普及、嵌入式系统的发展,以太网(Ethernet)技术得到迅猛的发展,它正逐步进入仪器仪表、工控以及智能家电领域。
如何通过互联网共享以单片机应用系统为核心的家电网络的信息,如何利用现已十分成熟的网络技术、8位廉价的MCU及以太网控制器芯片在不需要使用PC机或高档单片机的情况下接入以太网,是家电上网研究的关键所在。
TCP/IP作为以太网互连的最广泛的协议,其开放性和兼容性推动了以太网的发展和应用。
但TCP/IP协议是一个庞大的协议族,对系统资源消耗比较大,如何在单片机系统上实现TCP/IP协议,成为以太网应用于由单片机系统组成的家电网络的难点。
本设计采用ENC28J60作为以太网控制器,其符合IEEE802.3协议、可以通过标准的SPI串行接口与单片机通信,占用单片机I/O口的资源少,有利于在单片机上实现以太网功能,从而实现家电上网。
2设计任务
本设计的基本任务是:
制作通信转换接口板,对单片机采集到的数据与TCP/IP通信数据格式转换进行研究并进行测试。
扩展任务:
完成小型家电网络组建。
2.1制作通信转换接口板
2.1.1单片机与Internet通信转换接口板设计
MCS-51内部虽然含有4个并行I/O接口和一个串行通信I/O口,但是没有SPI接口。
而大多数网卡芯片只支持SPI通信,因此在设计中采用I/O口中的P1.0、P1.1、P1.2、P1.3模拟SPI与网卡芯片通信。
最终通过RJ45接入Internet。
2.1.2单片机与PC通信转换接口板设计
利用MCS-51的串行通信I/O口即RXD,TXD与计算机系统进行半双工数据串行通信。
通过电平转换芯片完成与PC机通信的硬件电路的实现。
总之,单片机用普通I/O口模拟SPI通信接入Internet,并通过串行口实现与计算机系统的通信。
单片机利用自身所具有的串行通信接口与PC机进行半双工数据传递,接收的数据可以送到显示系统显示,也可以由串行口返送到PC机中,同时显示在PC机界面上。
因此下位机51单片机所要完成的主要工作是将接收到的数据转发到Internet(相当于家电部分数据传到Internet上),或转发到PC机并通过VB接收回显框来确认输入到微机中的信息。
2.2对单片机采集到的数据与TCP/IP通信数据格式转换进行研究并进行测试
2.2.1对单片机采集到的数据与TCP/IP通信数据格式转换进行研究
MCU通过以总线方式从DS18B20中读出温度并转换为能被液晶显示的ASCII码,并转变为IP格式的数据,然后调用网卡驱动程序将数据发到Internet中。
此过程是调用uIP移植程序串插完成的。
2.2.2对单片机采集到的数据与TCP/IP通信数据格式转换进行测试
在protues仿真中,首先将采集到的数据送到LCD显示以确保其数据的正确性。
然后按上面数据转换的方法转换数据格式并发到网上。
接收端验证数据是否正确传输,如果接收到的数据是正确的那么就说明格式转换是正确的。
3系统框图
图2接口转换原理图
4接口转换设计方案的分析、论证与确定
4.1硬件设计方案的论证
4.1.1接入Internet接口转换方案论证
方案一:
用MCU控制RTL8019以太网控制器方法实现
虽然现在大多嵌入式系统开发可选的独立以太网控制器都是为个人计算机系统设计的,如RTL8019、AX88796L等。
但是这些器件不但结构复杂,体积庞大,且比较昂贵。
目前市场上大部分以太网控制器的封装均超过80引脚。
方案二:
用MCU控制ENC28J60的方法实现
ENC28J60符合IEEE802.3协议,且只有28引脚,既能提供相应的功能,又可以大大
简化相关设计,减小空间。
实现以太网接口,ENC28J60只需要外部几个标准元件。
图3ENC28J60外部接线图
注:
1铁氧体磁环的额定电流至少为100mA。
2只有在单片机运行在5V电压下才需要。
在差分接收脚(TPIN+/TPIN-)上,需要一个专用于10BASE-T操作的1:
1脉冲变压器。
在差分发送引脚接一个带有中心抽头的1:
变压器需要有2KV或更高的隔离能力,防静电。
对变压器的详细要求请参考芯片手册第16章“电气特性”。
两个变压器均需要额外的两个50Ω(精度为1%)的电阻和一个0.01μF的电容与特定端相连。
介于ENC28J60的上述特点,在本设计选用ENC28J60为接入Internet接口转换方案的硬件电路实现方案。
4.1.2PC部分的设计方案论证
用通信线程法实现
通信线程法通过在应用程序的主线程外再创建一个通信线程来监视通信设备,其最大的优点是程序对接收数据具有自主察觉能力。
一旦通信线程查询到数据已经发送到串口上,线程自动向应用程序发送一个数据接收到的消息,应用程序可用该消息来读取通信设备传来的数据,并且使用通信线程不会占用CPU时间。
这样,系统实际上具有了同时控制多个通信设备如Modem的能力。
用串口查询法实现
串口查询法是一种主要工作在查询方式下的实现方法。
当通信程序工作在查询方式时,可以不考虑Windows2000/XP的进程和线程的问题。
仅在串口有数据时去读串口缓冲区就可以了。
这种方法对通信双方协议的依赖性很大,而且双方通信协议的约定对程序实现的难易程度影响很大。
由于在设计中用VB编写界面,且因VB自身的特点,创建通信线程的方法对VB而言是有相对的难度。
而且这样做无异于牺牲VB的简单方便性而去迁就程序的复杂性,很不经济。
串口查询法引入了汇编语言的一些思维,实现了最精简的程序代码。
它不一定是最完善的,但是这种方法确实达到了简化思路和降低难度的目的,因而选择方案二。
4.2程序设计方案的论证
采用完整的TCP/IP协议方式,完成相应程序的编写。
通过移植uIP协议的方式,完成程序编写。
由于完整的TCP/IP协议所要求的数据存储区和程序存储区比较大,并且需要MCU有较快的的数据处理能力。
而这些是51所不具有的,且很难在51上实现。
然而,uIP协议栈去掉了完整的TCP/IP中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,设计重点放在了IP/TCP/ICMP/UDP/ARP这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。
由于uIP协议栈专门为嵌入式系统而设计,因此还具有如下优越功能:
(1)
代码非常少,其协议栈代码不到6K,很方便阅读和移植。
(2)
占用的内存数非常少,RAM占用仅几百字节。
(3)
其硬件处理层、协议栈层和应用层共用一个全局缓存区,不存在数据的拷贝,
且发送和接收都是依靠这个缓存区,极大的节省空间和时间。
(4)
支持多个主动连接和被动连接并发。
(5)
其源代码中提供一套实例程序:
web服务器,web客户端,电子邮件发送程序(S
MTP客户端),Telnet服务器,DNS主机名解析程序等。
通用性强,移植起来基本不用修改就可以通过。
(6)
对数据的处理采用轮循机制,不需要操作系统的支持。
由于uIP对资源的需求少和移植容易,大部分的8位微控制器都使用过uIP协议栈,而且很多的著名的嵌入式产品和项目(如卫星,Cisco路由器,无线传感器网络)中都在使用uIP协议栈。
综上论述,方案最终选择为:
接入Internet芯片选用ENC28J60,并采用uIP协议完成TTL—TCP/IP协议转换。
PC机部分利用VB中的MSComm控件的OnComm事件来捕获并处理通信事件;
硬件电路部分单片机与PC之间的电平转换用集成块MAX232实现;
单片机通信的软件设计采用单片机半双工串行口编程实现。
4.3单片机部分的设计方案论证
4.3.1单片机与PC之间部分的设计方案
串口通信硬件电路涉及到PC机与单片机之间电平转换的问题。
单片机的串行口输入/输出的是TTL电平,而PC机的串行口则是按RS-232标准设计的,因为两者的电平不匹配而不能直接相连,需要一个中间接口电路来完成电平转换工作。
下面就转换芯片的选择进行论证。
使用1488或1489转换芯片完成电平转换。
方案二:
使用MAX232转换芯片完成电平转换。
这几种转换芯片虽然都能够实现PC与单片机之间的电平转换,但方案一的不足之处是1488和1489需要12V电源供电,这在某些只提供5V电源的场合就不适用了。
而使用新型电平转换器芯片MAX232就可以很好地解决这一问题,该芯片使用单5V电源,其内部有两组电压转换电路,一组把+5V变为+10V,从引脚2输出;
另一组把+10V变为-10V,从引脚6输出。
这样在实际应用中MAX232只需外接5个电容即可实现1488和1489两个芯片的功能,并且运用MAX232芯片具有两路收发通道。
因此转换电平芯片选用方案二。
MAX232与单片机的常用电路如图4所示。
因此方案最终选择为:
单片机与PC之间的电平转换用集成块MAX232实现;
4.3.2单片机与Internet接口的设计方案
该方案的设计如4.1.1的论述,此处略。
5TTL-TCP/IP转换的硬件设计
图5ENC28J60的外围电路
图6ENC28J60的引脚
图7SPI的4种模式
5.1单片机与Internet通信的硬件电路设计
5.1.1ENC28J60的外围电路设计及与MCU-51通信的设计
ENC28J60的引脚图及外部连线图如图6和图5。
图5中的两个发光二极管H1与H2的连接方式决定ENC28J60的工作方式,图中的连接方式使ENC28J60工作于单工方式通信。
图5的HR901170A是以太网隔离变压器RJ45插座,内嵌有脉冲变压器
图5中的2KΩ、1%的电阻起偏置作用。
ENC28J60的部分数字电路工作在2.5V,以降低功耗;
ENC28J60内部集成1个2.5V的调节器来产生所需的电压。
VCAP引脚和地之间所接的10μF的电容的作用是保证供电的稳定性。
每个供电引脚和地之间所接的0.1μF的陶瓷电容起去耦作用。
ENC28J60与MCU通信采用SPI的00模式,图7是SPI的4种模式。
5.2单片机与PC通信的硬件电路设计
5.2.1MAX232的外围电路设计
MAX232芯片管脚图及外围电路如图8。
图中上半部分的电容C1、C2、C3、C4及V+、V-是电源变换电路部分。
由于MAX232对电源噪音很敏感,所以VCC必须对地加去耦电容C5,其值为0.1uF。
电容C1、C2、C3和C4取同样数值的胆电解电容1.0uF/16V,用以提高抗干扰能力,并且在连接时必须尽量靠近器件。
下半部分为发送和接收部分。
T1in和T2in可直接接TTL/CMOS电平的单片机的串行发送端TXD;
R1out和R2out可直接接TTL/CMOS电平的单片机的串行接收端RXD;
T1out和T2out可直接接PC机的RS232串口的接收端RXD;
R1in和R2in可直接接PC机的RS232串口的发送端TXD。
5.2.2单片机复位电路及中断电路设计
复位电路采用单片机经典复位电路。
中断电路采用外部中断0,P3.2口在按键按下时被置为低电平,由此来产生外部中断。
中断电路的按键应加入防抖动电路来减少按键抖动影响。
6TTL-TCP/IP的硬件程序设计
6.1单片机与Internet通信的硬件程序设计
在uIP移植程序中嵌入定时处理程序、串口处理程序和ENC28J60驱动程序。
以完成TTL-TCP/IP的转换。
流程图如图9所示,源程序部分见附件三。
6.2单片机与PC通信的硬件程序设计
单片机通信采用全双工异步通信。
主程序中等待数据接收完成,接收完成后调用发送子程序;
为了能使程序结构框架完整和程序的可编程性,发送和接受程序的处理是采用中
断接收和查询发送方式。
流程图如图9所示,源程序见附件四。
7VisualBasic6.0简介
VisualBasic6.0是Microsoft公司开发的基于强大的WINDOWS平台上的一种应用程序编程语言。
它可以说是在计算机发展史上应用最为广泛的语言,具有功能强大、效率高且简单易学的优势。
8单片机串行口介绍
8.1MCS-51串行口结构
MCS-51内部有两个独立的接收、发送缓冲器SBUF,SBUF属于特殊功能寄存器。
发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,二者共用一个字节地址(99H)。
串行口的结构如图11所示:
图10串行口结构示意图
单片机发送数据时,是由一条写发送缓冲器的指令(MOVSBUF,A)把数据写入串行口的发送缓冲器SBUF中,然后从TXD端一位一位地向外部发送。
同时,接收端RXD也可以一位一位地接收外部数据,当收到一个完整的数据后通知CPU,再由一条指令(MOVA,SBUF)把接收缓冲器SBUF的数据读入累加器。
单片机的接收也是通过该条指令完成的。
8.2串行通信的制式
在串行通信中数据是在两个站之间进行传送的,按照数据传送方向,串行通信可分为单工(simplex)、半双工(halfduplex)和全双工(fullduplex)三种制式。
图12为三种制式的示意图。
图11单工、半双工和全双工三种制式示意图
在单工制式下,通信线路的一端接发送器,一端接接收器,数据只能按照一个固定的方向传送。
在半双工制式下,系统的每个通信设备都由一个发送器和一个接收器组成,如图12(b)所示。
在这种制式下,数据能从A站传送到B站,也可以从B站传送到A站,但是不能同时在两个方向上传送,即只能一端发送,一端接收。
其收发开关一般是由软件控制的电子开关。
全双工通信系统的每端都有发送器和接收器,可以同时发送和接收,即数据可以在两
个方向上同时传送。
如图12(c)所示。
8.3MCS-51串行口特殊功能寄存器
8.3.1串行口数据缓冲器SBUF
SBUF是两个在物理上独立的接收、发送寄存器,一个用于存放接收到的数据,另一个用于存放欲发送的数据,可同时发送和接收数据。
两个缓冲器共用一个地址99H,通过对SBUF的读、写指令来区别是对接收缓冲器还是发送缓冲器进行操作。
CPU在写SBUF时,就是修改发送缓冲器;
读SBUF,就是读接收缓冲器的内容。
接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的,因此可以同时发送、接收数据,为全双工制式。
8.3.2MCS-51串行口的工作方式
MCS-51的串行口有4种工作方式,通过对SCON中的SM1、SM0位来决定,如表1所示:
表1串行口4种工作方式
SM0SM1
工作方式
功能
波特率
00
方式0
8位同步移位寄存器
fosc/12
01
方式1
10位UART
可变
10
方式2
11位UART
fosc/64或fosc/32
11
方式3
方式1:
收发双方工作在方式1下,此时,串行口为波特率可调的10位通用异步接口UART,发送或接收一帧信息,包括1位起始位0,8位数据位和1位停止位1。
其帧格式如
下图12所示。
发送时,数据从TXD输出,当数据写入发送缓冲器SBUF后,启动发送器发送。
当发送完一帧数据后,置中断标志TI为1。
接收时,由REN置1允许接收,串行口采样RXD,当采样1到0的跳变时,确认是起始位“0”,就开始接收一帧数据。
当RI=0且停止位为1或SM2=0时,停止位进入RB8位,同时置中断标志RI;
否则信息将丢失。
所以,方式1接收时,应先用软件清除RI或SM2标志。
本设计采用方式1,方式0、方式2、方式3这里不作具体介绍。
图12方式一的10位的帧格式
9调试
9.1总装调试
9.1.1插好ENC28J60、MAX232等芯片,接好全部线路。
9.1.2用数字万用表检测电路板线路是否连接良好,检查是否存在短路。
9.1.3将输入端接地,接通+5V电源(先接好地线),此时硬件电源指示灯亮,如果不亮,应检测电源正负电压和电阻值是否合适。
9.1.4接电源,用万用表检测MAX232的第2和第6号管脚输出电压是否为+10V和-10V。
实际调试时,检测发现第2号管脚和第6号管脚输出电压分别为+8.8V和-9.4V,在误差允许的范围内输出正常。
9.1.5硬件电路正常后,用合适的九针串口线将电路板与PC连接好,利用网上下载的串口助手来调试硬件电路,看是否具备收发功能。
若不具备,则检查单片机源程序是否正确。
若收发功能已经具备,说明自己的硬件电路调试成功。
9.1.6用已调试成功的硬件电路来调试VB程序。
检测自己做的串口助手是否符合设计要求
9.2调试心得
9.2.1调试硬件电路
无论从电路原理上还是电路连接上,本设计所采用的硬件电路是比较简单和容易实现的。
可是在实际的调试过程中却遇到了一些值得我关注的问题。
由于在画PCB的时候,我加了附铜并且板子转印的效果不好,在描线的时候与铜网多处相联,给硬件电路的调试带来不必要的麻烦。
另外由于制作PCB板及调试的时间只有5天,最终也只调试出部分功能。
RS232在串口通信电路中要求是比较严格的,它与MAX232的距离、焊接方式等都对电路能否正常通信有影响。
调试中发现它应适当接近MAX232并且尽量避免电源线和地线的干扰;
焊接上,由于RS232是圆孔型插针,直接焊接很容易造成信号不能正常传输,因此在这个问题上我做了一些考虑和试验,最终的解决方法是剪一小段金属丝填入RS232的圆孔插针,再进行焊接,这样就可以完全解决这个问题。
9.2.2uIP移植
由于本设计需要搭建一个联入因特网的通信平台,且把数据转换成IP格式的程序代码较大我个人无法完成,因此经全面考虑我选择了移植uIP协议完成数据格式的转换。
为了使uIP协议能正常工作,我编写了ENC28J60驱动程序、定时程序及串口程序。
具体实现过程是:
选用Protues仿真,然后制作电路板联网。
实际使用中还有以下问题有待解决:
(1)uIP协议发送数据较慢,在自然移植的过程中需要修改。
(2)在设计思想上只是实现了简单的格式转换还没有实现真正快速的通信。
10结论
本设计包含软件方面和硬件方面。
软件部分是主要部分,硬件部分核心器件有:
单片机,ENC28J60,MAX232等。
本设计在理论上实现是可行的,在实际操作时,为了便于工作用两个ENC28J60模拟互联网,虽然不是真正的互联网但可作初步试验,因此,笔者本着科学严谨的态度,努力实现设计要求。
但是由于笔者技术能力有限,只是实现了简单的TTL到TCP/IP协议的转换,不足的是没有真正完成通信的目的。
希望通过以后的努力能够完成设计任务。
参考文献
[1]周晓阳,程红,张晓媛.新型以太网控制器ENC28J60及其接口技术.单片机与嵌入式系统应用.2006年第8期
[2]禾青.智能家电和信息家电的Internet连接.电子产品世界.2001.4A.
[3]uip0.9瑞典计算机科学学院(网络嵌入式系统小组)的AdamDunkels开发
[4]MicrochipTechnologyInc.ENC28J60Stand-AloneEthernetControllerwithSPIInterface[EB/OL].,2005.
[5]李朝青.单片机原理及接口技术(第3版),北京航空航天大学出版社,2005.10.
[6]陈艳华,侯安华,刘盼盼.基于ARM的嵌入式系统开发与实例,人民邮电出版社.
[7]WRichardStevens.TCP/IP详解.机械工业出版社,2000.
[8]周晓峰,杨世锡,华亮.单片机上简单TCP/IP协议的实现.微电子学与计算机,2004年第21卷第2期.
[9]潘绍明,何为民.基于51主控的IP电话设计.单片机与嵌入式系统应用.2005.11.
[10]李长林.VisualBasic串口通信技术与典型实例[M].北京:
清华大学出版社,2006.4
[11]金英姿邓少鹍.VisualBasic实用培训教程[M].北京:
人民邮电出版社,2003.3
TTL-TCP/IPconversionresearch
FUMinJie
(CollegeofPhysicsandElectricalEngineering,AnyangNormalUniversity,Anyang,Henan455002)
Abstract:
Innetworkinformationdevelopmenttoday,thenetworktechnologyisalreadyverymature.Allkindsofintelligenthomeappliancehasgraduallyenteredinnumberablefamilies,homeapplianceintelligentwillbecomefuturedevelopmentdirectionalongwiththedevelopmentoftheInternet.Thisdesignaimstostudyhowinexistinghomeappliancemodewillbehomeappliancedataconversionofdataframeformat,realizethehomeapplianceInternetfunctions.UseC51
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TTLTCPIP 转换 研究