柴義龍 陳偉利 趙俊欽
(吉林建筑大學電氣與計算機學院,吉林 長春 130000)
隨著社會的發(fā)展,人們生活中電器設備的增多,室內復雜的布線設計帶來的安全隱患,使實現(xiàn)設備的無線化成為邁向未來智能家居生活的重要一步,同時減少使用線路線材也是未來社會實現(xiàn)綠色經(jīng)濟環(huán)保的發(fā)展趨勢。本設計針對有線電器設備通訊連接問題,將基于USB 協(xié)議轉化技術實現(xiàn)成本低廉、操作簡易、即插即用的無線化藍牙模塊設計,通過USB 協(xié)議實現(xiàn)接受數(shù)據(jù)信息并轉化為藍牙協(xié)議進行數(shù)據(jù)傳輸,實現(xiàn)電器設備通訊無線化,推進現(xiàn)代化生活建設,方便人們的生活。
本設計致力于實現(xiàn)通過USB 協(xié)議轉換藍牙協(xié)議進行數(shù)據(jù)傳輸,實現(xiàn)有線電器的無線化。由于USB 接口協(xié)議具有4 種傳輸模式,每種傳輸方式都有各自特點,不同操作系統(tǒng)的驅動程序也不同,因此為簡化模塊設計程序,使用高可配置性的FPGA芯片作為主控芯片,其不僅易于維護、方便移植、升級、擴展,同時FPGA 具有可以隨時改變邏輯功能,可將各種端接匹配元件整合到器件內部,有效降低BOM 成本,有效降低布局布線難度。這里無線化藍牙模塊采用性能較好的FT601 芯片,其不僅提供支持USB 協(xié)議的接口,而且無需考慮固件設計以及驅動程序的編寫,開發(fā)簡易,周期較短,而且其數(shù)據(jù)傳輸速率完全滿足本設計在數(shù)據(jù)傳輸方面的需求。數(shù)據(jù)傳輸過程是首先由終端1通過USB 協(xié)議發(fā)送數(shù)據(jù)信息到達接口芯片1,再通過由接口芯片和FPGA 組成的基于FPGA 的協(xié)議轉換系統(tǒng)轉化為符合藍牙協(xié)議的數(shù)據(jù),再將數(shù)據(jù)通過藍牙配對傳輸至終端2,實現(xiàn)電器設備通訊數(shù)據(jù)傳輸無線化。
USB 接口設計采用FT601 芯片,是FTDI 最新推出的USB3.0 to FIFO interface IC,可實現(xiàn)USB3.0 與16/32bit 并行IO 接口之間的數(shù)據(jù)傳輸。芯片支持1.8V、2.5V、3.3V 共3 種IO電壓,同時支持USB3.0、USB2.0 傳輸,支持2 種FIFO 傳輸協(xié)議,通過16bit 或32bit 并行數(shù)據(jù)線和讀寫狀態(tài)可實現(xiàn)與CPU/FPGA的數(shù)據(jù)交換,可以進行數(shù)據(jù)的大吞吐量操作,另外支持遠程喚醒功能。整個USB 通信協(xié)議全部由芯片驅動自行完成,開發(fā)者無須考慮USB 底層固件的編程,能夠明顯降低制板加工工藝,簡化系統(tǒng)設計[1]。FT601 芯片結構示意圖如圖1 所示[2]。
圖1 FT601 芯片結構示意圖
FT601 芯片主要是通過接口將數(shù)據(jù)傳輸至FPGA,通過在FPGA 和FT601 間接入32 根數(shù)據(jù)線,同時接入9 根信號線來保障信號的傳輸速率。另外如圖2 所示,設計了喚醒電路和復位電路來解除當FT601 芯片沒有進行通信時的低電模式[3]。
圖2 FT601 喚醒電路和復位電路
如圖3 所示,通過無線化藍牙模塊插入到前端設備有線電器USB 接口,同時為了方便實現(xiàn)數(shù)據(jù)處理的算法,經(jīng)由FT601接口芯片,將根據(jù)USB 協(xié)議接收的數(shù)據(jù)流轉換成FPGA 系統(tǒng)可接受的信號,然后進入到分布式FIFO 緩存,數(shù)據(jù)轉換模塊進行數(shù)據(jù)處理,然后進入藍牙FIFO 緩存,最后按照藍牙協(xié)議通過藍牙配對連接藍牙設備進行輸出。
圖3 協(xié)議轉換數(shù)據(jù)傳輸鏈路
協(xié)議轉換處理流程主要可以分解析、匹配、映射、處理、重組五大部分。軟件定義可編程協(xié)議轉換系統(tǒng)框架如圖4,該系統(tǒng)由軟件定義控制器、軟件定義協(xié)議解析端口、可編程指令處理模塊、緩存模塊、存儲模塊、軟件定義數(shù)據(jù)重組模塊六大模塊組成[4]。
圖4 協(xié)議轉換系統(tǒng)結構框圖
軟件定義控制器是通過編程命令實現(xiàn)整個系統(tǒng)正常運行的的關鍵模塊,將控制平面與其它模塊平面分開,通過控制平面編程命令語言,實現(xiàn)對其它各個模塊的實時集中控制,這樣就無需改變設備硬件結構框架,只要通過對軟件定義控制器進行編程,即可完成對整個系統(tǒng)的實時控制。
軟件定義協(xié)議解析端口對源數(shù)據(jù)包處理流程如圖5 所示,協(xié)議轉換過程中不包含對數(shù)據(jù)包負載內容的處理,而首先通過抽取一定比特的包頭數(shù)據(jù)并識別數(shù)據(jù)信息類型來實現(xiàn)靈活的數(shù)據(jù)包解析[5],進而實現(xiàn)把異構協(xié)議部分的數(shù)據(jù)幀頭信息轉換為通用描述符[6]結構,將復雜的協(xié)議簡單化,從而只需處理模塊主要處理數(shù)據(jù)轉換后形成的簡易型通用描述符即可。對于協(xié)議無關的數(shù)據(jù)包解析,只需將協(xié)議轉換映射字段以及相關標志信息整合到通用描述符中,從而降低協(xié)議轉換難度,提高協(xié)議轉換效率。
圖5 數(shù)據(jù)包處理流程
可編程指令處理模塊采用可編程ALU 指令[7],通過命令語言編程實現(xiàn)提取關鍵字段,從而根據(jù)匹配表進行匹配操作,匹配成功后通過對通用描述符結構進行增加,替換以及刪除等操作處理,完成對該模塊傳入數(shù)據(jù)的協(xié)議轉換處理過程。
存儲模塊將根據(jù)該模塊固定存儲的已編輯的命令語言和USB 協(xié)議與藍牙協(xié)議的映射關系表以及通用描述符關鍵字段的匹配表,進而存儲軟件定義控制器需要的各類控制信息和可編程指令處理模塊需要的數(shù)據(jù)指令信息。
緩存模塊主要用于存儲數(shù)據(jù)包中解析分離出的負載內容,待到數(shù)據(jù)重組并發(fā)送后將清除這些已用緩存數(shù)據(jù)。
軟件定義組據(jù)重組模塊將從緩存模塊中提取出的負載內容和協(xié)議轉換后的數(shù)據(jù)組合為新的數(shù)據(jù)幀并進行發(fā)送。
為保證不同時鐘域數(shù)據(jù)傳輸?shù)恼鎸嵱行院透叨葴蚀_性,如圖6,該模塊設計采用FIFO(先進先出)隊列存儲[8]的設計方式,如果收到數(shù)據(jù)緩存信號則會利用存儲單元進行數(shù)據(jù)緩存,再進行數(shù)據(jù)傳輸,同時當預存空間滿時則會停止接收數(shù)據(jù),反之沒有收到數(shù)據(jù)緩存信號則會丟棄預先緩存的數(shù)據(jù),從而避免出現(xiàn)數(shù)據(jù)雜亂無效的情況,有效提高數(shù)據(jù)傳輸效率。
圖6 FIFO 控制邏輯圖
本次設計是設計出價格低廉、低功耗、小體積、數(shù)據(jù)共傳、便捷萬用的無線化藍牙控制模塊,減少電器間的線路連接,使室內設計更加簡約。本設計難免存在不妥之處,希望接下來能對之實施進一步有效開發(fā),切實實現(xiàn)理論和實踐相結合,對之進行科學調整,相信隨著藍牙通訊和無線化技術的快速發(fā)展,未來電器也將會更加智能、便捷、高效,促進人們生活方式的多樣化,實現(xiàn)更好的無線化環(huán)境將是指日可待。