您好!歡迎光臨烜芯微科技品牌官網(wǎng)!

深圳市烜芯微科技有限公司

ShenZhen XuanXinWei Technoligy Co.,Ltd
二極管、三極管、MOS管、橋堆

全國服務(wù)熱線:18923864027

  • 熱門關(guān)鍵詞:
  • 橋堆
  • 場效應(yīng)管
  • 三極管
  • 二極管
  • 51單片機的多串口擴展設(shè)計詳解
    • 發(fā)布時間:2022-02-19 18:27:04
    • 來源:
    • 閱讀次數(shù):
    51單片機的多串口擴展設(shè)計詳解
    串行通信在智能儀器系統(tǒng)數(shù)據(jù)通信中一直扮演極重要的角色,具有線路簡單、應(yīng)用靈活、可靠性高等優(yōu)點,目前已成為許多高端CPU和低端單片機的標準配置。由于51單片機多數(shù)只提供了一個串口資源,最多二個串口,幾乎沒有超過這個數(shù)目的,所以軟件模擬串口的收發(fā)工作往往是此類系統(tǒng)的擴展多串口的首選方案,但該方案不僅占用資源,且應(yīng)用效果并不理想。因此本文采用了16C554擴展串口資源,并提供了實際電路原理圖和軟件的模塊化設(shè)計方案及部份軟件代碼等。
    1.16C554原理
    16C554是一種通用異步串行收發(fā)器,采用并行一串行轉(zhuǎn)換機制提供了4組RS --232接口,每通道可配置最大16字節(jié)FIFO (First In First Out)緩存,其總線接口方式,便于和MCS-51單片機連接,實現(xiàn)串口擴展;其可以提供兩種接口:16模式和68模式,16模式專門針對51系列單片機;68模式針對Motorola系列和其它系列單片機,提供FIFO和 DMA兩種工作模式。
    1.1內(nèi)部結(jié)構(gòu)
    圖1是其內(nèi)部一組通道(其它三組一樣)的原理框圖。它提供了數(shù)據(jù)總線(D0-D7)、讀寫控制信號(IOW/R)及片選信號(A0-A2,CS),還提供符合RS -232協(xié)議的接口信號,如TxD,RxD及Modem控制信號等,并具有內(nèi)部通道自檢功能;其工作流程是:在控制信號(Iow,IOR,CS,A0-A2)的作用下,對指定的某一路通道進行操作;數(shù)據(jù)或從8位數(shù)據(jù)線寫入到發(fā)送寄存器(Transmit FIFO Registers),啟動發(fā)送工作,或者從接收寄存器(Receive FIFO Registers)進行讀取操作;當發(fā)送寄存器或接收寄存器發(fā)送完成或接收到一個字節(jié)的內(nèi)容時,對應(yīng)通道的INT A-D會從高電平變化為低電平,這個信號變化可以作為單片機的中斷源。
    51單片機
    圖1 16C554內(nèi)部原理圖
    1.2內(nèi)部寄存器
    在應(yīng)用時,必須首先對16C554 內(nèi)部的幾個重要功能寄存器如中斷使能寄存器等進行設(shè)置,當設(shè)置正確后,16C554 才可以正常工作。部分寄存器是獨立地址,有一些寄存器是共用地址,根據(jù)讀寫操作的不同,代表的功能是不同的,具有不同的物理意義(見表1、表2)。
    51單片機
    51單片機
    1.3應(yīng)用特點
    器件的主要特點如下:支持3.3V和5V,內(nèi)部包含4片16C550,最高可達1M的波特率,可軟件設(shè)定波特率;16字節(jié)帶錯誤指示功能的接收FIFO緩沖器;可編程設(shè)定的數(shù)據(jù)格式:數(shù)據(jù)長度為5、6、7、8等位,停止位長度為1、1.5、2等位,提供偶校驗、奇校驗或無校驗模式;標準的調(diào)制解調(diào)器接口;68引腳PLCC和80引腳TQFP兩種封裝形式。
    2.應(yīng)用設(shè)計
    2.1硬件設(shè)計
    在采用89C58實現(xiàn)的一個移動目標無線遙測遙控系統(tǒng)中,需要完成的工作主要有:GSM通訊、GPS處理、PC通訊以及手柄通訊等,這些外設(shè)都是通過RS—232接口和51單片機通訊的。采用16C554擴展51單片機串口的連接如圖2所示。
    51單片機
    圖2 采用16C554擴展的51單片機串口連接
    圖2中,D[0-7]連接51單片機的P0口,A0/A1/A2連接到P0的三位地址線;GSMCS、GPSCS、HSETCS及PCCS分別代表著A通道(連接到GSM)、B通道(GPS通訊)、C通道(手柄顯示)及D通道(計算機通訊通道)的片選信號,連接到P2口的三位地址線;INTA/INTB/INTC/INTD是四通道的接收/發(fā)送后的指示信號,作為51單片機外部中斷源INT0,當四通道中的任一通道接收到內(nèi)容,都會觸發(fā)51單片機中斷申請,使51單片機進入中斷程序,讀取內(nèi)容與PC、手柄的串行通訊經(jīng)過了RS- 232電平變換,以滿足較長距離通訊的需要。
    圖2中,4個二極管和一個與非門組成5U1中斷信號電路,芯片復位端和51單片機復位信號相連。
    特別需要說明的是16C554的供電電路。實踐中,發(fā)現(xiàn)它極易受到電源波動的影響,導致通訊失敗。因此,電路中采用電阻5R4和5C1、5C2組成了一個RC濾波電路,且在布板時,根據(jù)就近連接的原則,把5C3和PIN13、5C4和PIN47、5C5和 PIN64就近連接,提高了它的抗干擾能力,如果5R4用電感代替,效果更好。
    2.2初始化流程
    51單片機
    圖3 初始化流程
    通常情況下,對于16C554的各個通道而言,差別僅在通訊的波特率、校驗位等不同,因此在設(shè)計軟件時,盡量模塊化,即設(shè)置模塊、讀操作模塊及發(fā)送模塊等盡量共用。圖3是初始化操作的流程圖,相應(yīng)的代碼如下所示:
    51單片機
    通常51單片機軟件的主循環(huán)是一個死循環(huán)結(jié)構(gòu),但如果其他功能模塊也存在一個死循環(huán)的結(jié)構(gòu),那么在條件判斷的條件無法滿足時,51單片機系統(tǒng)往往就進入到類似“死機”的特征,導致系統(tǒng)崩潰無法完成預定任務(wù),且這種條件錯誤并不是系統(tǒng)的主要任務(wù)。因此,在初始化流程中,引入了任務(wù)限時服務(wù)機制,在初始化條件失敗后,仍然可以正常退出初始化模塊,以便后續(xù)任務(wù)繼續(xù)得到進行,如LCD或LED提示初始化16C554失敗等。
    Setup模塊的入口參數(shù)為:DPH,R5,R6,R7。DPH代表的是四通道對應(yīng)的地址,R7、R6代表著對應(yīng)通道的波特率設(shè)置值,R5代表了設(shè)置對應(yīng)通道的中斷源。在實際應(yīng)用中,只需對上述4個字節(jié)賦予不同的值,連續(xù)調(diào)用4次,就完成了對16C554 四通道的初始化工作。
    2.3中斷接收流程
    與通過16C554發(fā)送流程相比,接收流程要復雜一些;為了提高51單片機程序的運行效率,采用中斷方式讀取,從而完成接收任務(wù),流程圖如圖4所示。
    51單片機
    圖4 外部中斷0處理流程圖
    進人外部中斷服務(wù)后,首先進行現(xiàn)場保護,把終端中使用到的公共變量保存,如保存DPTR和A等,然后依次完成各通道的讀取保存任務(wù)。圖4中最重要的是:完成四通道任務(wù)后,在退出中斷服務(wù)前,還需要再次檢查這四個通道是否仍然存在有接收中斷。如果有則繼續(xù)在中斷服務(wù)程序中讀取,否則退出中斷服務(wù)程序。實踐應(yīng)用表明:如果沒有這種處理機制,在串口通訊發(fā)生時,51單片機會一直處于被申請外部中斷狀態(tài),導致其他任務(wù)無法得到正常運行,即死機。
    小結(jié)
    以上就是51單片機的多串口擴展設(shè)計了,經(jīng)實踐表明,采用FIFO設(shè)計的16C554,減少了中斷服務(wù)時間,不僅提高了51單片機程序的效率和處理速度,而且可應(yīng)用在高速調(diào)制解調(diào)器和需要快速數(shù)據(jù)處理時的網(wǎng)絡(luò)環(huán)境;在儀表系統(tǒng)中,51單片機因其應(yīng)用特點,將來仍然會占有很大的市場份額,因此,擴展它的串口資源具有一定的使用和參考價值。
    〈烜芯微/XXW〉專業(yè)制造二極管,三極管,MOS管,橋堆等,20年,工廠直銷省20%,上萬家電路電器生產(chǎn)企業(yè)選用,專業(yè)的工程師幫您穩(wěn)定好每一批產(chǎn)品,如果您有遇到什么需要幫助解決的,可以直接聯(lián)系下方的聯(lián)系號碼或加QQ/微信,由我們的銷售經(jīng)理給您精準的報價以及產(chǎn)品介紹
     
    電話:18923864027(同微信)
    QQ:709211280

    相關(guān)閱讀