基于PL2303的串口轉USB口串行通信設計
在串行通信中,收發(fā)雙方對發(fā)送和接收數據的速率要有約定,即設定波特率。通過(guò)軟件可以對單片機串口設置為4種工作方式,即方式0、方式1、方式2、方式3。其中方式0和方式2的波特率是固定不變的,方式1和方式3的波特率是可以調整的。波特率由單片機內部的定時(shí)器T1的溢出率來(lái)決定,用定時(shí)器T1作為串行通信波特率發(fā)生器時(shí),典型的使用方法是使T1工作在自動(dòng)重裝的8位定時(shí)方式,即定時(shí)器的工作方式2,這時(shí)定時(shí)器T1的溢出率取決于TH1中的初值。而單片機的串行通信方式采用方式1,即數據發(fā)送是10位幀格式。串行通信方式1的波特率的計算如下:
本文引用地址:http://dyxdggzs.com/article/236086.htm方式1波特率=(2SMOD/32)x T1溢出率 (1)
T1溢出率=fOSC/[12×(256-TH1)] (2)
上式中,SMOD是單片機芯片內部的電源控制寄存器PCON中的D7位,可取值為0或1;fOSC是表示單片機外接的晶體振蕩器的頻率。
在實(shí)際應用中,數據傳送的波特率最好選擇標稱(chēng)值,又由于TH1的初值是整數,為了減小波特率計算誤差,單片機外接的晶振頻率盡量選用11.059 2 MHz,這樣串行通信方式1的波特率與TH1的初值的對應關(guān)系基本上是一個(gè)確定值,如表1所列。
?

?
根據表1,如果串行通信的波特率選用9 600,則裝入單片機定時(shí)器1的TH1中的初值就是FDH,通過(guò)下面的程序完成初始化:
?

?
?

?
4 PL2303的驅動(dòng)
PL2303是Prolmc公司生產(chǎn)的一種高度集成的RS232-USB接口轉換器,可提供一個(gè)RS232全雙工異步串行通信裝置與USB功能接口便利連接的解決方案。該器件內置USB功能控制器、USB收發(fā)器、振蕩器和帶有全部調制解調器控制信號的UART,只需外接幾個(gè)電容就可實(shí)現USB信號與RS232信號的轉換,能夠方便地嵌入到手持設備中。該器件作為USB/RS232雙向轉換器,一方面從主機接收USB數據,并將其轉換為RS232信息流格式發(fā)送給外設;另一方面從RS232外設接收數據,轉換為USB數據格式傳送回主機。這些工作全部由器件自動(dòng)完成,開(kāi)發(fā)者無(wú)需考慮固件設計。
PL2303的驅動(dòng)可在大多數操作系統上模擬成傳統的COM端口,并允許基于COM端口應用方便地轉換為USB接口應用,實(shí)現通信,其數據傳輸的波特率可高達6 Mbps。通過(guò)利用USB塊傳輸模式,利用龐大的數據緩沖器和自動(dòng)流量控制,PL2303能夠實(shí)現更高的數據吞吐量,比傳統的UART(通用異步收發(fā)器)端口要快。
前面介紹了單片機與PL2303的接口電路,通過(guò)PL2303的橋接,將單片機的串口轉成了USB口。當單片機系統與PC主機系統通過(guò)USB通信線(xiàn)連接起來(lái)后,PC機將這個(gè)USB接口看成是一個(gè)COM口(RS232全雙工異步串行通信接口),此時(shí),PC機要裝入PL2303的驅動(dòng)程序,這個(gè)驅動(dòng)程序就是將該USB口模擬成為一個(gè)COM口,USB轉串口線(xiàn)的端口號可能是COM4,也可能是COM5,此端口號是電腦系統自動(dòng)分派的,不是每臺電腦都一樣。在沒(méi)有必要的情況下,請不要去修改它,使用時(shí)只需記住這個(gè)端口號就可以了。在使用此端口的軟件中,都務(wù)必按此端口來(lái)選擇,如STC—ISP下載軟件、串口調試軟件等。PL2303的驅動(dòng)程序可以從官方網(wǎng)站下載。
結語(yǔ)
本文介紹的單片機串口轉USB口的接口電路已經(jīng)通過(guò)實(shí)際的電路板實(shí)現,在實(shí)際的應用中效果很好,通信的可靠性很高,特別適合筆記本電腦與單片機系統之間的通信。有些筆記本電腦的操作系統是Win7操作系統,此時(shí)要注意在官方網(wǎng)站上下載Win7操作系統的PL2303驅動(dòng).PART.RAR。在使用中感覺(jué)到的不足之處是PL2303芯片在做電路時(shí),外接的電阻、電容等器件比較多,畫(huà)電路板比較麻煩。
通信相關(guān)文章:通信原理
評論