嵌入式单片机PPP协议的应用
(3)默认情况下,如果字符的值小于0x20(例如ASCII控制字符),一般都要进行转义。例如,遇到字符0x01时需连续传送0x7D和0x21两个字符(这时,第6个比特取补码后变为1,而前面两种情况均把它变为0)。这样做是防止它们出现在双方主机的串行接口驱动程序或调制解调器中,因为它们有时会把这些控制字符解释成特殊的含义。另一种可能是用链路控制协议来指定是否需要对这32个字符中的某些值进行转义。默认情况下是对所有的32个字符都进行转义。
关于PPP协议的详尽描述可以参阅RFC1661文档。
3单片机PPP协议
单片机PPP协议是PPP协议在单片机中的应用,有其特点。单片机的存储空间只有64KB,而PPP协议包括LCP、PAP、IPCP以及NCP等协议,并且在连接建立后还要用到数据传输协议(TCP/IP、UDP等)、各种压缩协议等。要把这些协议完全嵌入单片机是不可能的,所以只能根据实际需要选择其中的一部分。
例如采用UDP协议而不是功能相对齐全但协议内容过于庞大的TCP/IP协议来传输数据,传输中基本上不使用数据压缩协议,跳过单片机作为服务器端时的密码验证过程,省略IPX、AppleTalk等网络层协议等。也就是说,本文的单片机PPP协议,事实上只包含了从PPP连接的建立到实现简单的数据传输所必需的协议,而不包括PPP协议的所有功能。这种协议的取舍是由硬件的客观限制以及实际的应用需要共同决定的。
4 单片机PPP协议PPP连接的建立
建立后的单片机PPP连接状态如图2所示。
其中,C51系统是已经植入PPP协议的51系列单片机,电话线部分也可以是某个网络的一部分,甚至是Internet。
单片机PPP协议流程图如图3所示。
PPP连接的建立主要经过三个阶段,分别是LCP协商、密码认证以及网络层协议配置。
4.1 LCP处理阶段
首先,第一个LCP数据包被服务器端发送后,从服务器端返回一个PPP拒绝包给除密码认证外的所有选项,接着服务器端强制认证协议进行协商(先前来自否定帧的PAP和CHAP都被发送)。随后服务器端返回一个拒绝包给CHAP,本文用PAP来代替。然后服务器端认同并返回一个新的请求,这时候需要进行PAP。接下去对PAP进行确认,系统对字符映射的丢弃进行协商。最后所有控制特性被服务器端同意丢弃。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论