位置:51电子网 » 技术资料 » 单 片 机

微控制器拨号上网的实现

发布时间:2008/5/27 0:00:00 访问次数:432

摘要:介绍了一种在微控制器(单片机)上实现ppp协议,并使其通过isp连入internet的方法。分析了ppp协议,论述了软件系统的层次结构和实现难点,重点介绍了协议的简化方法以适应单片机有限的存储资源。

关键词:ppp 微控制器 单片机上网 调制解调器

微控制器(也称单片机)把所有常用的资源,如存储器、模数转换器、通用输入输出口、定时器等,与cpu集成在一个芯片上,具有体积小、功耗低、使用方便的特点,广泛应用于各种嵌入式系统中。随着互联网(internet)的兴起与普及,使微控制器也接入到互联网,并通过互联网传送数据。便是实现单片机与互联网通信的前提是需要在单片机上实现多种繁杂的互联网协议。而微器一般处理能力较低、程序存储器和数据存储器资源有限,这就使微控制器上网变得非常困难。目前,一般采用微控制器直接驱动网卡芯片的方案。网卡芯片封装了底层的以太网协议(如ieee802.3),微控制器只需控制网卡芯片并实现传输层与网络层协议(例如tcp、ip协议)即可以上层。但其缺点是必须应用在已经拥有局域网的地方,且网卡芯片(例如rtl8019等)价格不菲。

本文针对微控制器上网的问题,提出一种大微控制器中实现ppp协议,并通过调制解调器(modem)连接到isp(internet service provider)实现上网的解决方案:微控制器控制modem拨号连接到isp上,然后根据ppp协议(point to point protocol)进行通信协商、密码认证等握手过程,如果成功就可以通过isp上网传送数据。这种方案的优点在于:(1)可以应用于任何覆盖电话网的地区,适用于广大偏远地区;(2)硬件实现比较简单,程序比较短小;(3)只需外接电话线,安装简便。

1 硬件连接与底层驱动

微控制器拨号上网解决方案中的硬件连接非常简单,只需使用微控制器的标准串行口和i/o总线与modem相连。为了使程序更为简化,在硬件设计中可以不使用modem的硬件握手信号。最终只需四根连接线来控制modem(如图1所示):串口发送(txd)、串口接收(rxd)、载波检测cd(carrier detect)和终端准备dtr(data aerminal ready)信号。cd信号可以检测modem是处于数据传送状态还是at命令传送状态。drt信号用来通知modem传送工作已经结束。微控制器的串行口和i/o口不能直接与标准modem相连,需要使用电压转换芯片,如max232等,转换为rs232标准。

为了方便软件编程,需要针对硬件编写一些底层驱动程序。首先是串行口的驱动函数:打开串口(opencomm)、关闭串口(closecomm)、读串口数据(readcomm)、写串口数据(writecomm)等。然后在这些串口函数的基础上编写modem的驱动函数。单片机通过串行口控制modem,进行拨号、设置等操作。控制方法采用at命令,例如:atdt命令用来拨号、atv命令控制modem返回值的格式等。控制modem拨打isp的电话号码后,modem就转入在线模式(on-line),此时微控制器向串行口发送的所有数据都会直接传送给isp主机。同样isp主机的回答也传回微控制的串行口。可以说此时的modem和电话线建立了一个从微控制器到isp的透明数据连接。当数据传送完成需要断开连接时,微控制器通知modem结束会话,并从在线模式转回普通的命令模式。这可以通过置高modem的dtr线完成。同时,处于在模式下微控制器也要不断检测cd线是否处于高电平,当线路由于异常断开时,cd线会回复到平常的低电平。根据这些操作,编写modem驱动函数:(1)modem初始化函数(modeminit);(2)拨号函数(modemdial);(3)断开与isp连接(modemhangup);(4)检测modem是否处于在线状态(modemonline)等。

这些底层的驱动函数将会使上层协议的编写很方便;更重要的是,它提供了一个硬件抽象层。当底层硬件改动时,只需要对底层的驱动数改动,而上层函数的代码不变。

2 软件整体结构

2.1 软件层次结构

程序中的所有代码都由c语言编写,采用分层结构,从底到上分别为:串口驱动层、modem驱动层、ppp协议层、ip协议层、udp协议层与应用层。上层函数的实现需要应用到底层函数,而底层函数的任务就是为上层函数提供服务,最终完成应用

摘要:介绍了一种在微控制器(单片机)上实现ppp协议,并使其通过isp连入internet的方法。分析了ppp协议,论述了软件系统的层次结构和实现难点,重点介绍了协议的简化方法以适应单片机有限的存储资源。

关键词:ppp 微控制器 单片机上网 调制解调器

微控制器(也称单片机)把所有常用的资源,如存储器、模数转换器、通用输入输出口、定时器等,与cpu集成在一个芯片上,具有体积小、功耗低、使用方便的特点,广泛应用于各种嵌入式系统中。随着互联网(internet)的兴起与普及,使微控制器也接入到互联网,并通过互联网传送数据。便是实现单片机与互联网通信的前提是需要在单片机上实现多种繁杂的互联网协议。而微器一般处理能力较低、程序存储器和数据存储器资源有限,这就使微控制器上网变得非常困难。目前,一般采用微控制器直接驱动网卡芯片的方案。网卡芯片封装了底层的以太网协议(如ieee802.3),微控制器只需控制网卡芯片并实现传输层与网络层协议(例如tcp、ip协议)即可以上层。但其缺点是必须应用在已经拥有局域网的地方,且网卡芯片(例如rtl8019等)价格不菲。

本文针对微控制器上网的问题,提出一种大微控制器中实现ppp协议,并通过调制解调器(modem)连接到isp(internet service provider)实现上网的解决方案:微控制器控制modem拨号连接到isp上,然后根据ppp协议(point to point protocol)进行通信协商、密码认证等握手过程,如果成功就可以通过isp上网传送数据。这种方案的优点在于:(1)可以应用于任何覆盖电话网的地区,适用于广大偏远地区;(2)硬件实现比较简单,程序比较短小;(3)只需外接电话线,安装简便。

1 硬件连接与底层驱动

微控制器拨号上网解决方案中的硬件连接非常简单,只需使用微控制器的标准串行口和i/o总线与modem相连。为了使程序更为简化,在硬件设计中可以不使用modem的硬件握手信号。最终只需四根连接线来控制modem(如图1所示):串口发送(txd)、串口接收(rxd)、载波检测cd(carrier detect)和终端准备dtr(data aerminal ready)信号。cd信号可以检测modem是处于数据传送状态还是at命令传送状态。drt信号用来通知modem传送工作已经结束。微控制器的串行口和i/o口不能直接与标准modem相连,需要使用电压转换芯片,如max232等,转换为rs232标准。

为了方便软件编程,需要针对硬件编写一些底层驱动程序。首先是串行口的驱动函数:打开串口(opencomm)、关闭串口(closecomm)、读串口数据(readcomm)、写串口数据(writecomm)等。然后在这些串口函数的基础上编写modem的驱动函数。单片机通过串行口控制modem,进行拨号、设置等操作。控制方法采用at命令,例如:atdt命令用来拨号、atv命令控制modem返回值的格式等。控制modem拨打isp的电话号码后,modem就转入在线模式(on-line),此时微控制器向串行口发送的所有数据都会直接传送给isp主机。同样isp主机的回答也传回微控制的串行口。可以说此时的modem和电话线建立了一个从微控制器到isp的透明数据连接。当数据传送完成需要断开连接时,微控制器通知modem结束会话,并从在线模式转回普通的命令模式。这可以通过置高modem的dtr线完成。同时,处于在模式下微控制器也要不断检测cd线是否处于高电平,当线路由于异常断开时,cd线会回复到平常的低电平。根据这些操作,编写modem驱动函数:(1)modem初始化函数(modeminit);(2)拨号函数(modemdial);(3)断开与isp连接(modemhangup);(4)检测modem是否处于在线状态(modemonline)等。

这些底层的驱动函数将会使上层协议的编写很方便;更重要的是,它提供了一个硬件抽象层。当底层硬件改动时,只需要对底层的驱动数改动,而上层函数的代码不变。

2 软件整体结构

2.1 软件层次结构

程序中的所有代码都由c语言编写,采用分层结构,从底到上分别为:串口驱动层、modem驱动层、ppp协议层、ip协议层、udp协议层与应用层。上层函数的实现需要应用到底层函数,而底层函数的任务就是为上层函数提供服务,最终完成应用

相关IC型号

热门点击

 

推荐技术资料

硬盘式MP3播放器终级改
    一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!