WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
一、名词解释: WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
FTDI - 很有名的USB 设备解决方案芯片提供商,它的FTXXXX系列串口转USB芯片非常经典和被广泛应用。WWW_P※LCJS_COM-PLC-)技.术_网
VCP - Virtual COM Port (虚拟串口端口)P.L.C.技.术.网——可编程控制器技术门户
USB-Serial Controller - USB和串口控制器,相当于一个在USB和串口之间的转换接口,在嵌入式控制系统,工业控制系统中应用广泛。WWW_P※LCJS_CO※M-PLC-技-.术_网
USB Device Solutions - USB 设备解决方案,这是现在大部份专业芯片厂商,如ST、TI、MAXIM等为了推广自已芯片而向应用厂商提供的芯片设计服务集成方案,是一个互利的服务,在提高自身的出货量的同时帮助芯片应用厂商加快产品的开发进度。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
二、相关芯片设计数据手册 WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
http://www.ftdichip.com/Documents/DataSheets.htm plcjs.技.术_网
三、FTDI Chip 产品选型目录 WWW_P※LCJS_CO※M-PLC-技-.术_网
http://www.ftdichip.com/FTProducts.htm WWW_PLCJS_COM-PLC-技.术_网
四、上位机串口编程模式 W1WW_P4LCJS_COM-PLC-技.术_网
一般的上位机串口编程模式如下:WW.W_PLCJS_COM-PLC-技.术_网
(1)调用经典的串口控件,如MSComm控件,这是个事件驱动的ActiveX控件,在串口编程中应用极广,是简单和中级的串口编程应用首选。但由于要有窗口容器包含它、“运行”效率不高和占用系统资源较多,在具有10个以上的串口应用的项目一般不用这个控件。WWW_P※LCJS_CO※M-PLC-技-.术_网
(2)现在非常流行的dot.NET中的串口控件,如下图所示:WWW.PLCJS.COM——可编程控制器技术门户
WWcW_PLCJS_COM-PLC-技.术_网
这是在用c#或dot.NET “管态”软件编程的首选控件,但同样存在上面所用的“MSComm.ocx”一样的问题,因此,在专业的串口编程中用得较小。WWW_PLCJS_COM-PLC-技.术_网
(3)真接用windows SDK 编程(也即Win API)来把串口当作一个文件来操作(Windows 操作系统自2000开始就不把串口单独进行抽象了,而是把有关设备或端口的抽象为“文件”,因此,我们只要掌握了针对“文件”的编程模型就能针对串口进行编程控制。这样设计是操作系统的未来。开始时会有点不习惯。但是慢慢就会体会到Microsoft这样设计的高明之处。WWW_PL※CJS_COM-PLC-技.术_网
(注:我在2002年之前一直用mscomm.ocx 和 PCOMM(台湾厂商提供的一个用API写的以静态库形式或动态库DLL形式提供的串口函数封装,很稳定和很专业,对于C和C++是无缝的,因此后期我都不用mscomm.ocx,大部份项目都用它,在我的blog中有PCOMM下载和一个详细的在VS2008下C#和三菱FX系列的编程口进行通信编程的用例。但自从2002年在维护一个日本VC++5.0&MFC的工控项目时,慢慢被里面的串口CLASS(实际上是给串口Win32编程更向上抽象多了一层,使我们不用直面Win32的繁杂)所触动。下决心用Win32来写串口代码。这也是最具灵活性、最高效率、的串口编程方式,不过要过多线程编程之一关才能写出“优雅”的代码来。)WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
(4)随着电脑的发展,串口在个人电脑的作用越来越显得可有可无,因此现在的个人电脑大部分都取消了串口,但串口(嵌入式系统中叫USART/UART)在嵌入式系统中的需求却是有增无减,比如,STM32103VET6就集成了2个USART和3个UART接口。虽然在我们互联嵌入式系统网络时有了越来越多的选择,比如CAN。但是用得最多的还是UART(串行接口),因此,串口USB转接线就变成了嵌入式开发工程师每人一条甚至2条。虽然还可以用之前的串口编程模型来写串口程序,但不少USB 设备芯片提供商为他们的芯片提供操作系统驱动的同时,还提供了更直接更高效的DLL动态链接库。用该库来写串口程序将更为直接和高效,但会损失掉代码的移植性,这有时是不可接受的。WWcW_PLCJS_COM-PLC-技.术_网
但,我现打算用这种方式来编写串口程序,只要我再加上一层接口函数,用该接口来隔离掉厂商DLL与用户代码的串口操作代码就行了。W1WW_P4LCJS_COM-PLC-技.术_网
五、FTDI的 D2XX Drivers 的DLL编程资源P.L.C.技.术.网——可编程控制器技术门户
D2XX drivers allow direct access to the USB device through a DLL. Application software can access the USB device through a series of DLL function calls. The functions available are listed in the D2XX Programmers Guide document which is available from the Documents section of this site. WWW_P※LCJS_CO※M-PLC-技-.术_网
Programming examples using the D2XX drivers and DLL can be found in the Projects section of this site. WWW_PLCJS_COM-PLC-技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
D2XXPG34.pdf // D2XX 编程手册WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
http://www.ftdichip.com/FTProjects.htm // D2XX 编程项目sWWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
http://www.ftdichip.com/Projects/CodeExamples.htm // Code Examples(包括VC、C#、Delphi, LabView(当然LabWindowsCVI参考VC的例子就OK)WWW_PLC※JS_COM-PmLC-技.术_网
WWW_PLCJS_COM-PLC-技.术_网
http://www.ftdichip.com/Projects/CodeExamples/VC++.htm // 有4个用例项目。WW.W_PLCJS_COM-PLC-技.术_网