一種基于C8051F310的UART擴展實(shí)現
引言
本文引用地址:http://dyxdggzs.com/article/109142.htmUART數據發(fā)送協(xié)議作為一種簡(jiǎn)單的數據發(fā)送協(xié)議,被大量的使用在當前各種數字外設的數據傳輸上。但是現在的PC機存在無(wú)UART接口或接口較少的問(wèn)題,當需要利用PC機對于多個(gè)數字設備同時(shí)處理問(wèn)題時(shí),就需要在PC機上進(jìn)行UART擴展,這類(lèi)問(wèn)題在筆記本PC上尤為突出。通常這種問(wèn)題的解決方法有以下幾種方法:(1)利用USB接口通過(guò)相應的轉換設備進(jìn)行轉換。(2)利用PCI總線(xiàn)轉換卡獲得多個(gè)UART接口的擴展。前者優(yōu)點(diǎn)在于實(shí)現簡(jiǎn)單設備,成本低。后者優(yōu)點(diǎn)在于可以實(shí)現多個(gè)接口擴展且功能完善。但在實(shí)際使用中發(fā)現兩者都存在一個(gè)共同的問(wèn)題,即利用擴展獲得UART接口其工作性能不夠穩定,且存在不能完全實(shí)現多個(gè)UART接口的實(shí)時(shí)通訊。
為解決上述硬件方法在工程實(shí)現存在的不足,本文針對項目實(shí)際需要提出了一種利用C8051F310單片機實(shí)現多UART接口擴展方法。通過(guò)單片機作為數據收發(fā)的中繼器,實(shí)現對于多個(gè)UART采集的需要。
UART數據發(fā)送
8位UART數據傳輸主要利用RX,TX信號線(xiàn)實(shí)現數據的雙向傳輸(如圖1)。
當數據接收時(shí),數據線(xiàn)RX首先處于接收準備狀態(tài)即RX呈高電平,根據UART數據發(fā)送協(xié)議,如果RX線(xiàn)有數據接收時(shí),RX線(xiàn)被置為低電平,接收起始位,在起始位后是為數據位,當最后一幀數據接收完畢后,產(chǎn)生終止,終止位的作用為將RX線(xiàn)電平置高,是RX線(xiàn)處于等待狀態(tài)。
發(fā)送通過(guò)對于TX線(xiàn)上信號電平的操作實(shí)現對于數據的發(fā)送,發(fā)送初始狀態(tài)下TX線(xiàn)處于高電平,當啟動(dòng)發(fā)送后將TX線(xiàn)電平置低產(chǎn)生起始位,在一個(gè)波特率時(shí)鐘周期后將開(kāi)始發(fā)送數據,數據發(fā)送完畢后重新將TX電平置高使發(fā)送機處于等待狀態(tài)。
單個(gè)UART實(shí)現方法
本文利用C8051F310單片機作為軟件UART實(shí)現的平臺,主要方法是通過(guò)單片機的定時(shí)器產(chǎn)生波特率,根據波特率確定的位時(shí)間定時(shí)讀取(或發(fā)送)位數據信號,從而模擬了硬件UART的工作過(guò)程。具體的實(shí)現方法如下所述。
(1)硬件連接
在UART的軟件實(shí)現中主要是利用單片機模擬硬件UART的發(fā)送過(guò)程,因此我們利用C8051F310單片機中定時(shí)器T0工作的雙八位定時(shí)模式用于產(chǎn)生波特率,PC機A0工作在邊沿捕捉狀態(tài)以捕捉SW_RX端口的電平變化產(chǎn)生,判斷數據接收的初始和終止。具體的硬件連接如圖2。
評論