張顯磊 彭永耀
【摘要】 本設計以C8051F320單片機為主控,集成USB、RS-232和RS-485多重數(shù)據(jù)傳輸功能于一體,最終實現(xiàn)將USB口數(shù)據(jù)轉換成RS-232數(shù)據(jù)以及RS-485數(shù)據(jù),同時RS232數(shù)據(jù)與RS485數(shù)據(jù)之間也可以實現(xiàn)相互轉換,可以任意選擇它們之間的數(shù)據(jù)轉換方式。
【關鍵字】 串口 USB 數(shù)據(jù)轉換
隨著現(xiàn)代科技的飛速發(fā)展,筆記本、平板電腦迅速風靡,但傳統(tǒng)的串行數(shù)據(jù)口卻在新一代的電子產品中逐漸被淘汰,在企業(yè)、學校和其他從事電氣技術工作或學習的地方,總是需要使用RS232、RS485接口,如工業(yè)控制儀器、PLC、變頻器等,然而現(xiàn)在無論是筆記本電腦還是平板電腦,甚至臺式電腦都很難找到RS232和RS485的串口,幾乎都是USB的接口,所以給我們造成很多不便,嚴重影響了應用程序的開發(fā)和使用。由此可見,單片機多串口轉換器的研究顯得極其重要。
本設計通過使用C8051F320單片機為核心主控,將RS-485、USB以及RS-232集成于一起,最終在RS-232數(shù)據(jù)、RS-485數(shù)據(jù)還有USB口數(shù)據(jù)之間實現(xiàn)相互轉換。
一、系統(tǒng)硬件設計
本設計是一個具有USB、RS232與RS485串口之間可以相互轉換的轉換器。由單片機核心控制模塊、單片機復位模塊、電源模塊、穩(wěn)壓模塊、RS232模塊、RS485模塊、USB模塊、C2接口模塊八部分組成。其硬件連接如圖1所示。
圖1系統(tǒng)設計框圖
1.1 C8051F320單片機模塊
C8051F320單片機內部有一個可編程的時鐘振蕩器,它可以提供2、4、8和16 MHz時鐘的編程設定,無需外部插件,而且在程序運行時,可實現(xiàn)內外時鐘的動態(tài)切換。單片機內部有調試電路,它可以進行全速和非侵入式的在系統(tǒng)調試,而且不需要仿真器;存儲器和寄存器支持單步和斷點,而且還可以進行對其觀察和修改。指令的結構呈流水線型;大部分的指令需要一個或兩個時鐘周期執(zhí)行就能執(zhí)行完。當微控制器的時鐘頻率為25MHZ時,最高可以達到25MIPS。
1.2 RS232模塊
一直以來,RS-232在計算機與外設或終端的近距離通信傳輸中應用最為普遍,屬于串行數(shù)據(jù)通信的標準接口。
1.3 RS485模塊
為確保高效傳輸速率,進一步提高傳輸距離,更遠、傳輸是EIA在RS232的基礎上,設計提出RS485接口,為了實現(xiàn)更遠距離及更快速度的直接連接,制定的更高性能的接口標準。
1.4 USB模塊
USB(Universal Serial Bus)是現(xiàn)今電子數(shù)碼產品最常用的數(shù)據(jù)接口技術,在本設計中單片機(C8051F320)自身具備全速和低速的USB功能控制器功能(USB0),可直接控制USB外設,無需要外部元件。
二、系統(tǒng)軟件的設計
2.1系統(tǒng)工作流程
系統(tǒng)提供了USB、 RS232與RS485可以互相轉換的功能。這個轉換器是基于TTL電平層面的,系統(tǒng)中的USB、RS232、RS485之間的數(shù)據(jù)通過TTL電平的橋梁進行傳輸。
2.2 USB0的端點地址
共有8個端點管道。端點0一直是作為雙向IN/OUT,端點0是控制端點。其他端點被當做是三對IN/OUT端點管道。
2.3 USB收發(fā)器以及寄存器的訪問
USB收發(fā)器的配置是通過USB0(收發(fā)器控制寄存器)來實現(xiàn)的。配置內容包括收發(fā)器使能/禁止、內部上拉電阻使能/禁止及器件速度選擇(全速或低速)。在SPEED為“1”時,USB0工作狀態(tài)為全速模式;當位SPEED為“0”時,USB0工作狀態(tài)為低速模式。USB0中間接地址寄存器中的BUSY位則是USB0寄存器讀忙的標志,可以通過軟件對該位進行拉高拉動來實現(xiàn)啟動對USB0寄存器進行讀的操作,目標USB0寄存器的地址則由USB0ADR位(5—0)給出。USB0DAT用于間接寫、讀USB0寄存器。
2.4 USB中斷
主程序開始初始化所有的子程序,然后進入一個無限循環(huán)的狀態(tài),這個過程是不停的從檢測USB狀態(tài)所獲得的信息包來更新輸出數(shù)據(jù)包。中斷寄存器的讀取和復位的程序及串口的數(shù)據(jù)傳送給USB接口的程序。通過開關切換來實現(xiàn)兩種串口與USB的通信。
參 考 文 獻
[1] 蕭世文,宋延清. USB2.0硬件設計[M].北京: 清華大學出版社,2006:39~54.
[2] Jobn Catsoulis.Designing Embedded hardware[M].OReilly Media,Inc. ,2005:203~211.