當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]單片機(jī)結(jié)構(gòu)簡單、開發(fā)方便,能夠滿足各種應(yīng)用領(lǐng)域的需求,在工業(yè)控制及自動(dòng)化裝置中得到了廣泛的應(yīng)用。它既可以單獨(dú)使用,也可以多片協(xié)同工作或作為計(jì)算機(jī)的信號(hào)預(yù)處理器,在這種情況下,通信問題就成了限制系統(tǒng)性能

單片機(jī)結(jié)構(gòu)簡單、開發(fā)方便,能夠滿足各種應(yīng)用領(lǐng)域的需求,在工業(yè)控制及自動(dòng)化裝置中得到了廣泛的應(yīng)用。它既可以單獨(dú)使用,也可以多片協(xié)同工作或作為計(jì)算機(jī)的信號(hào)預(yù)處理器,在這種情況下,通信問題就成了限制系統(tǒng)性能的瓶頸。通常使用的通信方式有串行和并行兩種,串行方式硬件結(jié)構(gòu)簡單但數(shù)據(jù)傳輸速率低,不適合大批量數(shù)據(jù)的傳送;并行方式下使用最多的中斷方式,以期提高CPU效率。但中斷方式也存在不少問題,除了具體的中斷服務(wù)外,保護(hù)、恢復(fù)斷點(diǎn)和寄存器的內(nèi)容、查取中斷向量等也占用不少CPU時(shí)間,如果數(shù)據(jù)較長,傳送一組數(shù)據(jù)CPU會(huì)被多次中斷,大量的斷點(diǎn)和寄存器的保護(hù)、恢復(fù)等工作特別影響CPU 效率。為了解決這一問題,本文提出了一種新的通信方式,稱之為中斷查詢方式,并利用在系統(tǒng)可編程邏輯器件 ispLIS1016實(shí)現(xiàn)了通信接口。

1 通信原理  

中斷查詢方式的實(shí)質(zhì)是中斷方式和查詢方式的結(jié)合:通信雙方由中斷方式進(jìn)入數(shù)據(jù)傳送狀態(tài),之后雙方在中斷內(nèi)利用查詢方式完成數(shù)據(jù)傳送,直至一組數(shù)據(jù)傳送完畢,各自退出中斷服務(wù)。

基于這種方式,通信接口應(yīng)具有數(shù)據(jù)鎖存、狀態(tài)控制和中斷產(chǎn)生等功能。如圖1—1所示為接口框圖,數(shù)據(jù)鎖存由鎖存器m和鎖存器s完成,分別鎖存送往主計(jì)算機(jī)和單片機(jī)的數(shù)據(jù);中斷和狀態(tài)信號(hào)由狀態(tài)控制器形成,包括中斷信號(hào)(INTm和INTs),數(shù)據(jù)鎖存器m滿(FULLm)、鎖存器s滿(FULLs),以及數(shù)據(jù)傳送完畢(ENDm和ENDs)等狀態(tài),供通信雙方查詢;通信數(shù)據(jù)和各狀態(tài)信號(hào)均通過數(shù)據(jù)總線傳送,通信雙方讀數(shù)據(jù)還是讀狀態(tài)由各自的地址譯碼器控制,通過數(shù)據(jù)選擇器選擇;數(shù)據(jù)的三態(tài)輸出由數(shù)據(jù)緩沖器實(shí)現(xiàn)。我們以計(jì)算機(jī)向單片機(jī)發(fā)送數(shù)據(jù)為例說明數(shù)據(jù)傳送過程:當(dāng)計(jì)算機(jī)將數(shù)據(jù)寫入鎖存器s時(shí),狀態(tài)控制器產(chǎn)生一中斷請(qǐng)求信號(hào)INTs,并置狀態(tài)FULLs=1、ENDs=0;單片機(jī)響應(yīng)中斷后便利用查詢方式接收數(shù)據(jù),查詢狀態(tài)信息FULLs和ENDs,每次FULLs=1時(shí)讀取一個(gè)數(shù)據(jù),同時(shí)該讀信號(hào)通過狀態(tài)控制器使FULLs清0,并產(chǎn)生中斷信號(hào)INTm;由于處于發(fā)送狀態(tài),計(jì)算機(jī)進(jìn)入中斷后,先檢查 FULLs,等待FULLs=0后向數(shù)據(jù)鎖存器s寫數(shù)據(jù)(僅為利用該寫信號(hào))將ENDs置位并退出中斷,單片機(jī)查到FULLs=0但ENDs=1后停止接收數(shù)據(jù)也退出中斷,一次通信完成。

可見,利用這種方式進(jìn)行數(shù)據(jù)傳送,無論數(shù)據(jù)量多大,每次數(shù)據(jù)傳送過程中CPU只響應(yīng)一次中斷,與單一的中斷方式比較,節(jié)約了CPU的中斷響應(yīng)時(shí)間,對(duì)于大批量數(shù)據(jù)的傳送,不僅效率高,而且數(shù)據(jù)量可任意改變,使用非常靈活。

2 接口功能的實(shí)現(xiàn)  

由圖1—1所示的框圖可以看出,上述中斷查詢接口不僅需要具有鎖存器和緩沖器的數(shù)據(jù)通道,還要有中斷、狀態(tài)控制及地址譯碼和數(shù)據(jù)選擇邏輯,電路是比較復(fù)雜的。但是,可編程邏輯器件和電子設(shè)計(jì)自動(dòng)化工具的出現(xiàn),使得復(fù)雜電路可在單片可編程邏輯器件上實(shí)現(xiàn),不僅使設(shè)計(jì)簡化,而且使硬件設(shè)計(jì)象軟件一樣易于修改。針對(duì)前述中斷查詢接口,我們采用LATTICE的在系統(tǒng)可編程邏輯器件is-pLSI1016實(shí)現(xiàn)其功能。這樣,該接口的設(shè)計(jì)就轉(zhuǎn)化為對(duì)其電路描述文件的設(shè)計(jì),可以采用原理圖或 HDL硬件描述語言。與原理圖比較,硬件描述語言不僅設(shè)計(jì)、閱讀和保存方便,而且易于仿真和進(jìn)行邏輯綜合,更適合對(duì)復(fù)雜電路的描述。因此我們采用 ABEL-HDL硬件描述語言進(jìn)行設(shè)計(jì)。

在Synario環(huán)境中,對(duì)選定的器件加入ABEL-HDL資源文件,輸入相應(yīng)的模塊名和文件名后,便可打開ABEL-HDL語言編輯窗口[2]。

利用ABEL語言進(jìn)行電路設(shè)計(jì)的關(guān)鍵在于各信號(hào)的定義和相應(yīng)的邏輯描述。就前述接口而言,地址總線、數(shù)據(jù)總線、讀、寫及中斷信號(hào)均直接與通信雙方的 CPU相連,顯然應(yīng)定義為引腳(pin);而數(shù)據(jù)鎖存器及各狀態(tài)信號(hào)通過數(shù)據(jù)選擇器與數(shù)據(jù)總線相聯(lián),故為節(jié)點(diǎn)(node),如表2—1所示。其中,A、 D、RD、WR、Q分別表示地址線、數(shù)據(jù)線、讀、寫及數(shù)據(jù)鎖存器輸出信號(hào),下標(biāo)m和s分別表示主計(jì)算機(jī)和單片機(jī);表中將數(shù)據(jù)輸出定義為緩沖器(buffer)是為了直接利用ispLSI1016各I/O腳的三態(tài)輸出功能,以省去圖1—1中的數(shù)據(jù)緩沖器。另外,狀態(tài)信號(hào)FULL和END應(yīng)為具有異步清零和置位功能的寄存器,以存貯數(shù)據(jù)交換過程中相應(yīng)的狀態(tài)信息,但是在可編程邏輯器件中設(shè)計(jì)異步控制是復(fù)雜和浪費(fèi)資源的,本文將它們?cè)O(shè)計(jì)為基本的RS 觸發(fā)器,故定義了相應(yīng)的反向輸出節(jié)點(diǎn)FUL1和EN1。

ABEL語言設(shè)計(jì)文件中各信號(hào)的邏輯關(guān)系可以多種方式給出,本設(shè)計(jì)主要采用寄存器和RS觸發(fā)器等,故以采用邏輯方程為宜。由前述接口原理可以看出,該接口的通信雙方均需3個(gè)端口:數(shù)據(jù)輸入/輸出口、狀態(tài)口及END信號(hào)置位口。設(shè)主計(jì)算機(jī)對(duì)應(yīng)的口地址為300H、308H和310H,單片機(jī)的3個(gè)口地址分別為8000H、8010H和8020H,對(duì)照?qǐng)D1—1所示的框圖和接口的工作原理,電路的ABEL語言方程可以按功能塊給出。

數(shù)據(jù)鎖存器是數(shù)據(jù)可靠傳送的基礎(chǔ),對(duì)主計(jì)算機(jī)而言,向300H單元寫入數(shù)據(jù)就是將數(shù)據(jù)寫入鎖存器s中,也就是說鎖存器s的輸入信號(hào)為主計(jì)算機(jī)的數(shù)據(jù)總線,時(shí)鐘為主計(jì)算機(jī)對(duì)300H單元的寫信號(hào),對(duì)應(yīng)的ABEL語言方程可表示為:

線和數(shù)據(jù)線的集合。為減少系統(tǒng)的片外接線,式(2—1)將鎖存器Qs的輸入定義為三態(tài)數(shù)據(jù)輸出的引腳(.pin),在保證接口功能的前提下,實(shí)現(xiàn)了在is-pLSI1016片內(nèi)Qs輸入端與數(shù)據(jù)總線的連接。

數(shù)據(jù)選擇器根據(jù)通信雙方對(duì)不同地址的讀取選擇不同信號(hào),其ABEL語言方程為:
    Ds.oe=!RDs&((ADRs==^h8000)#(ADRs==^h8010));(2—3)
    when(ADRs==^h8000)then Ds=Qs;else when(ADRs==^h8010)then Ds=STs;            (2—4)

式中,STs=[FULLs,F(xiàn)ULLm,ENDs,ENDm,x,x,x,x,x,x,x,x,x,x,x,x],12個(gè)任意值x的引入是為了使STs與數(shù)據(jù)總線寬度匹配。由于省去了圖1—1的數(shù)據(jù)緩沖器,數(shù)據(jù)選擇器的輸出即為數(shù)據(jù)總線,故其三態(tài)控制端為單片機(jī)讀數(shù)據(jù)(8000H)和讀狀態(tài)(8010H)信號(hào)的“或”信號(hào)。

狀態(tài)信號(hào)是數(shù)據(jù)正確傳送的保證,也是通信雙方讀寫數(shù)據(jù)的依據(jù)。從時(shí)序上講,F(xiàn)ULLs的置位和清零由Qs的寫信號(hào)和讀信號(hào)觸發(fā),即FULLs由方程(2—5)和(2—6)確定:
   !FULLs=(?。ˋDRm==^h300)#WRm)&  FUL1s;(2—5)
   !FUL1s=(!(ADRs==^h8000)#RDs)&  FULLs;(2—6)
    其中FUL1s為FULLs的反相輸出端。ENDs的清零與FULLs的置位同時(shí)產(chǎn)生,但其置位必須由主計(jì)算機(jī)寫310H單元觸發(fā),故ENDs的ABEL語言方程為:
!ENDs=(!(ADRm==^h310)#WRm)&EN1s;
                                                           (2—7)
!EN1s=(?。ˋDRm==^h300)#WRm)&ENDs;  

顯然,無論是主計(jì)算機(jī)將數(shù)據(jù)寫入Qs,還是主計(jì)算機(jī)將數(shù)據(jù)從Qm中讀走,INTs都應(yīng)置位,因此INTs=FULLs+FULLm,但這樣若FULLm為零則INTs將始終為1,無法產(chǎn)生中斷。為解決這一問題,我們將INTs的方程寫為:

INTs=FULLs#!(FULLm#ENDm);(2—9)

使其在ENDm為零時(shí)按INTs=FULLs+FULLm運(yùn)算,只要由軟件上控制,保證每次通信前雙方的狀態(tài)為:ENDs=ENDm=1,F(xiàn)ULLs=FULLm=0,即可實(shí)現(xiàn)正確的中斷和通信。顯然,利用同樣的方法不難寫出主計(jì)算機(jī)一方各信號(hào)的邏輯關(guān)系,本文不再累述。

通過以上設(shè)計(jì),我們實(shí)現(xiàn)了主計(jì)算機(jī)與多個(gè)80C196單片機(jī)系統(tǒng)之間的數(shù)據(jù)通信,將各80C196系統(tǒng)置于主計(jì)算機(jī)的總線擴(kuò)展槽中,使整個(gè)系統(tǒng)不僅通信速度快,而且性能穩(wěn)定可靠,效果良好。

[參考文獻(xiàn)]
[1] 劉樂善等.微型計(jì)算機(jī)接口技術(shù)原理及使用.華中理工大學(xué)出版社,1996.3
[2] 黃正瑾.在系統(tǒng)編程技術(shù)及其應(yīng)用[M].東南大學(xué)出版社,1997.8
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉