串口通信与网络通信

        上一篇文章记录了使用C# Winform开发串口通讯的上位机软件,而笔者在整个职业经历中开发得较多的还是网络通讯软件,通过以太网TCP/IP、UDP协议实现不同服务器应用程序之间数据传送与接收;而随着公司业务发展,在物联网工控机领域使用串口通讯的项目多了起来,因此将二者的区别记录下来,以便对它们有更好的理解。

        首先硬件不同。要实现网络通信需要的硬件有PC机上的网口、网卡、网线以及交换机、路由器等网络设备;而串口通讯只需要保证PC机上有可使用的串口和连接串口的数据线即可,通信使用3根线完成,分别是地线、发送、接收。

        另外二者的通讯协议不同。网络通信遵循OSI七层网络模型,使用TCP/IP或UDP协议进行数据通信,操作系统层面抽象出应用层和传输层之间的 Socket层,使用套接字(IP+端口)在应用层和传输层之间架起通讯的桥梁,从而实现网络上不同计算机之间的通信。在java技术栈中对socket进行了良好封装的框架Netty 是开发网络通讯功能的绝佳利器,笔者在几乎所有的Java项目(交通项目中交通设备数据采集,平台与充电桩信息互通,平台与交通信号机平台信息互通等等)技术选型中都豪不犹豫地选择使用她。

        串口通讯,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。对于串口而言,长度可达1200米。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。​​​​​​​RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准、RS-422(EIA RS-422-AStandard)是Apple的Macintosh计算机的串口连接标准。RS-485(EIA-485标准)是RS-422的改进。

        虽然二者有着诸多的不同,但是我觉得在消息的编解码上还是有相似的地方,毕竟数据传输时都是01组成的bit流。

你可能感兴趣的:(通信协议,网络)