2.3 以太网层应用程序设计
以太网上的通信协议一般采用TCP/IP协议。本文采用流行的SOCKET套接字编程,传输层协议选择UDP(用户数据报协议),通过VisuaIC++编写用户层程序。
WinSock 提供了对UDP的支持,通过UDP协议可以向指定IP地址的透明网关发送CAN协议数据,同时也可以通过它接收CAN协议数据。发送和接收方处于相同的地位没有主次之分。利用CAsynSocket类操纵无连接的数据发送较简单。首先生成一个本地套接口(需要指明SOCK_DGRAM标记);然后利用 int CAsyncSocket SendTO const VOID IPBuf int nBufLen UINT nHostPort LPCTSTR IpszHostADDress= NULL int nFlags=0发送数据,int CasyncSocket ReceiveFrom void IpBuf int nBufLen Cstring&rSocketADDressUINT&rSocketPort int nFlags=0接收数据。利用UDP协议可以使管理主机和89C52网关实现双向的数据通信。同时,这种传输方式也易于使数据89C52网关透明化。
3.接入Internet部分的程序流程图
前面已经介绍了软件设计的原理,这里介绍接入Internet部分的程序流程图。
4.小结
系统中可以采用多种单片机实现,只要是8位的单片机即可,内部RAM容量大一点越好。该系统目前正在家庭电器的控制系统中使用,系统工作稳定,接收信息正确,表明系统应用可行。