分辨串口和USB

PC机常用的通信方式有三种:串行、并行和网络接口。

目前大多数宏碁笔记本保留有串行口,一般在笔记本的左边,那个很多洞洞那个口就是串口,(也称COM口,串行接口)。

好啦,下面讲讲串口程序开发。记住在Windows上面的编程一切都是基于windows操作系统的。

之前在写串口采集数据的上位机时也颇为串口和USB设备这个东西搞不清。现在把自己后来的经验分享下,希望对后来的人有帮助,同时希望前辈们能够多多指正。

VC(VS)里面的串口控件MSComm和串口API,这些都是针对串口的开发,都是针对串口的操作。Windows这个操作系统本身为串行口、并行口和网络接口做好了很好的支持。也就是这些是传统的CPU与外设的通信接口,而windows是建立在这个芯片之上,给这个芯片灵魂,管理这个芯片的所有资源的,这样说你就可以理解为什么在这三个就没有开发驱动的概念,而是直接使用API或者别人提供的控件就能很好地进行数据采集了吧。

而USB,是有一个USB接口芯片,从处理器出来的信号先到达这个USB接口芯片,然后经过这个芯片把他转成差分信号,这样就达到了信号抗干扰能力提高,传输速率提高。

USB接口芯片主要分为3类:

1、需要外接处理器的USB接口芯片。

2、集成了微处理器的USB接口芯片

3、USB桥接芯片。

前两种都是需要自己开发驱动程序的,与之对应的USB设备都有固件(即固化的软件,烧录好的ROM)。

在这里我讲讲第三种,第三类不用自己开发驱动程序,利用虚拟串口的驱动程序,这个USB对客户端(即你的应用程序)就是串口的形式呈现了,这样你就可以使用串口控件或win 串口相关的API进行USB接口的开发了。也就是这个再物理链路上是USB接口的形式——查分信号传输,具有高的传输速率、强的抗干扰能力1等USB通信应有的优点,在功能层面来看则以串口的形式存在,Windows对串口的开发又进行了很好的支持。但因为这个最终还是要经过一个虚拟串口的程序,所以你可以联想到它跟第一和第二种的传输速率还是有区别的,会慢很多。

USB跟处理器之间可以是并行和串行连接。这样你就可以知道其实PC(处理器)就是串行、并行和网络接口。
而后来为了实现差分信号,为了实现高速率,就要下很多功夫了,最后实现了USB技术。

那么你会纳闷了,平时的USB转串口线又是什么情况呢?这个就是你的设备是串口的设备,而你的电脑没有串口,或串口的针脚不对时,你才用得上那个,在此时你可以猜到那个转串口线用的USB接口芯片是第三种USB桥接芯片了吧。但如果你的设备是USB设备,那不好意思,很多时候你是用不上那条线了,你就要基于驱动程序的API和Windows的API进行你的客户端(应用程序)开发了,这样你就可以实现通过你的Windows应用程序和你的USB设备交互~~参照:http://msdn.microsoft.com/zh-cn/library/windows/hardware/dn303342(v=vs.85).aspx

在Windows下开发,一切都是基于Windows,所以有一种说法,给微软打工的人群是很庞大的(直接或间接地,微软养活了很多人,很多人都跟着它走~~)

如果想走Windows那一套,就多逛逛Windows的技术支持网站:http://dev.windows.com/zh-cn/











阅读更多

没有更多推荐了,返回首页