接口/总线/驱动
通常 COM 使用的是9 针D 形连接器,也称之为RS-232接口,而COM 2 有的使用的是老式的DB25 针连接器,也称之为RS-422接口,这种接口目前已经很少使用。
微星有些型号的主板提供COM口插座,有用户购买的市售COM线,连接在主板上不能使用。这是因为市售的一些COM线的线序不一样
主板用的串口线有2种规格:交叉线和直连线。
看图片,你会觉得交叉线和直连线是不是叫反了。交叉和直连不是看表面,是依据线的序号和串口插头针脚序号的连接来区别的
串口线的2种规格对应2种不同针脚排列的主板。
90%的主板都采用直连线的排列。华硕、技嘉、微星、以及大部分二线主板都采用直连线排列。这是微星的串口针脚排列
通过串行端口扩充挡板可以接出一组串行端口。串行端口扩充挡板为选购配件,您可以联系当地代理商购买。
市场销售的串口线都没有标明是哪种接线方式,售货员也都不清楚。所以购买时- 一定要找人问清楚接线方式是直连线还是交叉线,一定要买直连线。
有些可以当场制作串口线的商家都明白2 种串口线,可以根据客户要求制作交叉线或直连线。
注意1脚对1脚
有些COM设备需要特定的中断和缓冲地址,请在BIOS里选择。
对于COM来讲,接口是一个包含一个函数指针数组的内存结构。每一个数组元素包含的是一个由组件所实现的函数地址。对于COM而言,接口就是此内存结构,其他东西;均是COM不关心的实现细节。
在C++中,可以用抽象基类来实现COM接口。由于一个COM组件可以实现支持任意数目的接口,因此对于这样的组件,可以用抽象基类的多重继承来实现。用类来实现组件将比其他方法更为容易。
对于客户来说,一个组件就是一个接口集。客户只能通过接口才能和COM组件打交道。从整体上讲,客户对于一个组件可以说是知之甚少的。通常情况下,客户甚至不必知道一个组件所提供的所有接口。
客户同组件的交互是通过接口完成的。在客户查询组件其他的接口时,也是通过接口完成的。这个接口就是IUnknown。Iunknown接口的定义包含在Win32 SDK中的UNKNWN.H的头文件中,引用如下:
interface IUnknown
{
virtual HRESULT-_ _stdcall QueryInterface(const IID& iid,void **ppv)=0;
virtual ULONG_ _stdcall AddRef( )=0;
virtual ULONG_ _Release( )=0;
};
所有的COM都要继承IUnknown。可以用Iunknown的接口指针来查询该组件的其他的接口,并且每个接口的vtbl中的前三个函数都是QueryInterface,AddRef和Release。这使得所有的COM接口都可以被当作成IUnknown接口来处理。由于所有的接口都支持QueryInterface,因此组件的任何一个接口都可以被客户用来获取它所支持的其他接口。
在用QueryInterface将组件抽象成由多个相互独立的接口构成的集合后,还需要管理组件的生命期。这一点是通过对接口的引用计数实现的。客户并不能直接控制组件的生命期。当使用完一个接口而要用组件的另一个接口时,是不能将改组件释放的。对组件的释放可以由组件在客户使用完所有的组件之后自己完成。IUnknown的另外两个成员函数AddRef和Release的作用就是给客户提供一种让它指示何时处理完一个接口的手段。
AddRef和Release实现的是一种名为引用技术的内存管理技术。当客户从组件获得一个接口时,此引用计数值将增1。当客户使用完某个接口时,组件的引用计数值将减1,当引用计数值为0时,组件可以将自己从内存中删除。AddRef和Release可以增加和减少这一计数值。
全部0条评论
快来发表一下你的评论吧 !