基于FT311D的USB轉外圍硬件接口拓展方案設計
摘要:FT311D接口芯片為Android手機或平板電腦提供了USB轉外部UART、GPIO、PWM、I2C、SPI硬件接口功能。本文介紹了FT311D的硬件特點(diǎn)及其在A(yíng)ndroid平臺下的軟件開(kāi)發(fā)方法。實(shí)驗表明,基于FT311D的Android設備USB轉外部接口方案硬件設計簡(jiǎn)單,軟件開(kāi)發(fā)方便,可廣泛應用于物聯(lián)網(wǎng)、車(chē)載系統、POS機、智能醫療保健儀器設備等。
本文引用地址:http://dyxdggzs.com/article/246309.htm引言
目前,移動(dòng)市場(chǎng)已經(jīng)急劇地改變了IT行業(yè)的格局,市場(chǎng)正在向智能手機和平板電腦等移動(dòng)計算設備傾斜。因此,很多傳統的PC軟件的開(kāi)發(fā)也正在迅速地向移動(dòng)平臺遷移,Android智能手機和平板電腦移動(dòng)設備逐步成為重要的計算應用平臺。
由于考慮系統硬件體積、功耗、成本等因素,除了常用的USB接口外,基于A(yíng)ndroid的智能手機或平板電腦往往缺乏硬件拓展接口,這某種程度上限制了這些智能移動(dòng)設備與物理世界的信息交互能力,例如外界傳感器數據的獲取,外部執行裝置的控制和在車(chē)載系統、POS機、智能醫療保健儀器設備中的應用等。
FT311D接口芯片能為Android手機或平板電腦提供USB轉外部UART、GPIO、PWM、I2C、SPI等硬件接口,無(wú)需安裝USB驅動(dòng),全面兼容USB 2.0接口,不需要軟件移植,不受Android操作系統升級的影響,只需安裝對應的APK就能實(shí)現數據通信,這有利于解決Android移動(dòng)設備硬件接口的擴展難題。
本文介紹了基于FT311D的Android移動(dòng)設備的USB轉外圍硬件接口拓展方案,主要內容包括FT311D的硬件特點(diǎn)及其在A(yíng)ndroid平臺下的軟件開(kāi)發(fā)方法。
1 FT311D接口芯片
FT311D芯片是由美國FTDI公司研制生產(chǎn)的面向Android移動(dòng)設備的USB轉外部硬件接口解決方案。FT311D芯片直接集成了USB通信協(xié)議棧,它分別支持USB轉UART、GPIO、PWM、I2C、SPI。FT311D芯片系統功能如圖1所示。

當FT311D的外圍接口配置為UART串口模式時(shí),該接口作為具有流控制的基本異步串行UART端口使用。FT311D的UART支持的波特率為300~921 600baud。其I2C總線(xiàn)主控端接口可以連接到支持125 kbps的I2C總線(xiàn)從控端接口。另外通用接口GPIO可以配置為提供多路脈沖寬度調制(PWM)輸出信號,這些輸出可用于控制電機、制動(dòng)器、傳感器、DC/DC轉換器或AC/DC電源的PWM信號以及玩具、照明應用、家用電器和工業(yè)設備等。
圖2為FT311D芯片引腳定義,FT311D系統原理框圖如圖3所示,主要引腳的功能略——編者注。

FT311D分別支持UART、GPIO、PWM、I2C、SPI硬件接口,具體接口類(lèi)型由CNFG2、CNFG1和CNFG0引腳決定。接口的類(lèi)型定義及其對應引腳略——編者注。
2 軟件開(kāi)發(fā)
基于A(yíng)ndroid開(kāi)發(fā)平臺的軟件開(kāi)發(fā),FT311D硬件接口應用程序主要包括兩部分,即用戶(hù)層User Layer和接口層Layer,詳見(jiàn)圖4。

用戶(hù)層面向高層應用程序開(kāi)發(fā),程序員不需要過(guò)多考慮Android設備與FT311D接口芯片通信的具體細節,只需要借助相應的用戶(hù)函數即可實(shí)現USB轉GPIO/UART/I2C/SPI/PWM接口的驅動(dòng)程序設計。而接口層則具體來(lái)執行用戶(hù)層提供的API函數功能,實(shí)現FT311D與Andoid系統間的USB通信功能,涉及具體的通信協(xié)議和數據包格式等。FTDI公司提供了用戶(hù)層和接口層的Java類(lèi)文件,可以很方便地編譯到用戶(hù)的應用程序中。
3 系統應用開(kāi)發(fā)實(shí)例
接下來(lái)主要介紹FT311D作為UART串行通信接口時(shí)的驅動(dòng)程序開(kāi)發(fā)方法。在實(shí)際開(kāi)發(fā)應用中,基于A(yíng)ndroid手機開(kāi)發(fā)環(huán)境,FT311D硬件串口驅動(dòng)軟件開(kāi)發(fā)的著(zhù)力點(diǎn)是UART Layer的API函數的正確使用。與圖4類(lèi)似,圖5是UART串行通信驅動(dòng)程序框圖。圖6為基于FT311D串行口,Android平板電腦與桌面PC串行通信實(shí)驗實(shí)物圖。

3.1 FT311-UART Layer
FT311-UART Layer提供了UART接口類(lèi)的用戶(hù)API函數。
3.1.1 SetCofig函數
函數SetConfig(int baudRate,byte dataBits,byte stopBits,byte parity,byte flowControl)的功能是設置串行通信幀格式包括通信波特率、停止位、校驗位等,在使用串口前,必須先使用該函數來(lái)進(jìn)行正確的設置。
baudRate波特率:最小是300,最大值是921 600,默認值是9 600。
dataBits數據位:7位或8位。
stopBits停止位:1或2位。
Parity校驗位:0代表沒(méi)有校驗;1為奇校驗;2為偶校驗。
flowControl流控:0為沒(méi)有,1代表有流控。
3.1.2 SendData函數功能
Send Data(byte numBytes,char[]buffer)向FT311DUART串行口發(fā)送數據。其中numBytes是發(fā)送的字節數,最大值是256;buffer是所發(fā)送數據的地址指針。
3.1.3 ReadData函數功能
Read Data(byte numBytes,byte[]buffer,byte[]actualNumBytes)從FT311D UART串行口讀取數據。
numBytes是接收的字節數;buffer是所發(fā)送數據的地址指針;actualNumBytes是實(shí)際接收到的數據個(gè)數。
3.2 FT311D串口通信代碼示例
基于上述API函數,示例代碼主要包括FT311D串行口配置、數據發(fā)送與接收。


上述示例顯示,基于FT311D接口芯片,面向Android移動(dòng)設備的USB轉外部UART、GPIO、PWM、I2C、SPI接口功能方案,具有硬件連接簡(jiǎn)單、軟件開(kāi)發(fā)方便易行的特點(diǎn)。
結語(yǔ)
FT311D芯片通過(guò)USB轉多種物理接口的方式拓展Android移動(dòng)設備的應用領(lǐng)域,進(jìn)一步增強Android移動(dòng)系統與外部物理世界的信息交互能力。同時(shí)FT311D硬件成本較低,開(kāi)發(fā)方便,無(wú)需安裝USB驅動(dòng),全面兼容USB2.0接口,不需要進(jìn)行軟件移植,同時(shí)不受Android操作系統升級的影響,因此以FT311D為核心的Android移動(dòng)系統硬件接口拓展解決方案是值得推廣應用的。
pwm相關(guān)文章:pwm是什么
pos機相關(guān)文章:pos機原理
評論