用多路復用器擴展MCU串口
多微控制器(MCU)/微機組成的分布式、主從式系統是現代復雜通信、控制系統的典型解決方案。分布式環(huán)境下的多機協(xié)同,要求系統狀態(tài)和控制信息在多機間進(jìn)行快速傳遞,這通常借助簡(jiǎn)單有效的串行通信方式?,F有的微控制器一般所帶的串行接口非常適用于點(diǎn)對點(diǎn)通信的場(chǎng)合;但對于實(shí)時(shí)性要求高的多機通信場(chǎng)合,這類(lèi)接口必須在串口數量和功能上進(jìn)行擴展,才能滿(mǎn)足對實(shí)時(shí)性要求較高的應用場(chǎng)合的需要。
本文引用地址:http://dyxdggzs.com/article/3030.htm本文討論了一種適用于多機實(shí)時(shí)環(huán)境下的、新的可重配置串口擴展方案。圖1為本方案框圖。多路復用器是本方案的硬件核心。方案的要點(diǎn)是利用Mux動(dòng)態(tài)地將MCU的串口在串行通道間切換,以達到串口擴展的目的。本文中MCU以89C51為例,Mux 以MAX353為例。
MAX353 是Maxim公司推出的高性能多路復用器,實(shí)際可構成兩對單刀單擲模擬開(kāi)關(guān),兩對開(kāi)關(guān)狀態(tài)由一個(gè)引腳控制。MAX353基本參數為導通電阻小于35Ω;導通時(shí)間小于175ns,關(guān)斷時(shí)間小于145ns。以上參數完全滿(mǎn)足本方案的使用要求。
以下介紹本串口擴展方案的基本工作原理。
兩串行通道和MAX353、89C51的連接 兩串行通道CH1,CH2通過(guò)多路復用器MAX353接到89C51的串口,多路復用器MAX353由89C51的一個(gè)I/O引腳控制。其中串行通道CH2的輸出TXD2同時(shí)接到89C51的外部中斷輸入請求INT0或INT1上。為了適應各種串口通信協(xié)議的需要,可在電路中加上電平轉換器件,如圖1所示。
中斷源的使用和設置 CH1仍舊使用串口中斷,而CH2使用外部中斷INT0或INT1(下面以INT0為例)。當CH2有信息來(lái)時(shí),TXD2上將出現起始標志:一個(gè)下跳沿。應將INT0設置成為邊沿觸發(fā),該下跳沿將使89C51進(jìn)入外部中斷服務(wù)程序,將串口切換到CH2。
基本工作原理簡(jiǎn)介 假定外部中斷的優(yōu)先級比串口中斷優(yōu)先級高,又假定在默認情況下,89C51通過(guò)I/O口控制Max353,將CH1和89C51的串口相連。當CH1有信息來(lái),將引起89C51的串口中斷,實(shí)時(shí)地接收CH1的信息;反之,當CH2發(fā)來(lái)信息時(shí),即由遠端機發(fā)來(lái)“發(fā)送字符”(發(fā)送該字符的目的僅僅是要89C51產(chǎn)生外部中斷,該字符姑且稱(chēng)之為“發(fā)送字符”)以引起外部中斷。利用該中斷,控制MAX353將CH2切到89C51的串口,為接受來(lái)自CH2的正規信息作準備;CH2再有信息來(lái)時(shí),即可通過(guò)89C51串口接收,實(shí)現串口擴展。
通過(guò)以上步驟,系統已經(jīng)在硬件上已經(jīng)完成了串口擴展,尚需編制相應的支撐軟件。
如果89C51是發(fā)送方,那么端機地址(這里地址指的是通道)顯然已知,據此控制MAX353,將串口切換到正確的通道上即可;如果89C51是接收方,89C51不知道信息何時(shí)、從何通道來(lái),為此需要建立特定的全局標志。
首先89C51的串口中斷服務(wù)程序應區分是CH1還是CH2引起的串口中斷,檢查控制MAX353串口I/O引腳狀態(tài)可作出判斷;設置全局標志CH1_Abort作為CH1串口中斷服務(wù)程序提前終止標志;設置全局標志Extern_on以表明外部中斷曾發(fā)生。CH1串口中斷服務(wù)程序檢測該標志,決定是否需要快速退出并復位Extern_on;為了提供系統的容錯能力,用一個(gè)定時(shí)器檢查CH2占用串口的時(shí)間。定時(shí)器的時(shí)間定為通道切換的最長(cháng)時(shí)間(包括軟件和硬件所需時(shí)間)。圖2給出了89C51的詳細工作流程。在此采用了下面直觀(guān)的類(lèi)狀態(tài)遷移圖的形式,特別是對全局性的狀態(tài)標志(如Extern_on、CH1_Abort等)的設立和復位進(jìn)行說(shuō)明。
從圖1可以清楚地看出,本方案硬件開(kāi)銷(xiāo)極少;原則上,以此方法可對微控制器的串口作進(jìn)一步的擴展。串口的擴展為系統提供了實(shí)時(shí)性強、可靠性高的串行通信能力;可通過(guò)改變通道和MAX353連接改變兩通道的優(yōu)先級,達到靈活配置通道優(yōu)先級的目的?!?/font>
參考文獻
1. 何立民:《MCS-51系列單片機應用系統設計系統配置與接口技術(shù)》,北京航空航天大學(xué)出版社,1996年12月;
2. AT89C51:8-Bit Microcontroller with 4K Bytes Flash;Atmel Corp.
3. 劉樂(lè )善等:《微型計算機接口技術(shù)原理及應用》,華中理工大學(xué)出版社,1998年1月。
評論