<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 一種高效多串口單一中斷源的芯片設(shè)計(jì)

          一種高效多串口單一中斷源的芯片設(shè)計(jì)

          作者: 時(shí)間:2010-07-28 來(lái)源:網(wǎng)絡(luò) 收藏

            1概述

            隨著單片機(jī)技術(shù)的不斷發(fā)展,單片機(jī)的應(yīng)用越來(lái)越廣泛,其中 51系列的單片機(jī)以價(jià)格低等優(yōu)勢(shì)始終占據(jù)著很大一塊市場(chǎng)。但是,單片機(jī)串行口的數(shù)量通常都不多,比如 8051單片機(jī)只有一個(gè)串行口,實(shí)際使用往往要進(jìn)行串行口的拓展。傳統(tǒng)方法擴(kuò)展多個(gè)串行口是利用多個(gè)中斷源,而在嵌入式系統(tǒng)中,花費(fèi)大量的中斷源來(lái)擴(kuò)展串口無(wú)疑是大量的資源浪費(fèi)。

            為更好地利用原有的資源去拓展串口,本設(shè)計(jì)利用去拓展多個(gè)串行口,設(shè)計(jì)一個(gè)。該能配合單片機(jī)進(jìn)行數(shù)據(jù)讀寫及傳送,并且能保證多個(gè)串口中斷的無(wú)遺漏檢測(cè)與服務(wù)。下一步,還將對(duì)設(shè)計(jì)進(jìn)行一系列嚴(yán)格的仿真和仿真結(jié)果分析。結(jié)果表明,該設(shè)計(jì)具有較高的應(yīng)用價(jià)值。

            2 總體設(shè)計(jì)

            2.1設(shè)計(jì)

            本設(shè)計(jì)是將幾個(gè)串行收發(fā)器模塊集成在一塊芯片上,在接收方面,利用一個(gè)中斷源向單片機(jī)提出中斷請(qǐng)求,再結(jié)合單片機(jī)的讀寫操作選擇查詢,當(dāng)發(fā)現(xiàn)某個(gè)收發(fā)器有數(shù)據(jù)時(shí)就進(jìn)行相應(yīng)的操作;在發(fā)送方面,則由單片機(jī)選擇發(fā)送。芯片在功能上分為兩層,下層包括串行收發(fā)器﹑中斷控制管理和地址鎖存三個(gè)模塊,上層模塊負(fù)責(zé)處理模塊的調(diào)用、模塊間的信號(hào)連接和控制向外傳送數(shù)據(jù)或標(biāo)志位,系統(tǒng)結(jié)構(gòu)如圖 1。 

          多串口單一中斷源的芯片設(shè)計(jì)

            頂層模塊:完成下層各個(gè)模塊信號(hào)連接,根據(jù)不同的地址處理好數(shù)據(jù)和標(biāo)志傳送,收發(fā)器的選擇等問(wèn)題。

            中斷管理模塊:儲(chǔ)存并管理各個(gè)收發(fā)器模塊的標(biāo)志位,如果某收發(fā)器有中斷請(qǐng)求則定時(shí)向單片機(jī)發(fā)出中斷信號(hào)。收發(fā)器模塊:完成數(shù)據(jù)格式的轉(zhuǎn)換及數(shù)據(jù)的接收和發(fā)送,對(duì)接收到的數(shù)據(jù)進(jìn)行緩存,最多可以緩存 8個(gè)字節(jié)的數(shù)據(jù)。地址寄存器模塊:在地址鎖存允許位下降沿時(shí)將地址保存起來(lái)。此模塊已放到頂層模塊里。

            2.2 芯片與單片機(jī)連接

            芯片設(shè)計(jì)的目的是為拓展單片機(jī)串口,所以如何與單片機(jī)聯(lián)合工作顯得至關(guān)重要。圖 2a是連接的示意圖(右邊為所設(shè)計(jì)的芯片,只標(biāo)明了跟單片機(jī)相連的引腳及一個(gè)收發(fā)器模塊的輸入輸出引腳)。

          多串口單一中斷源的芯片設(shè)計(jì)

          多串口單一中斷源的芯片設(shè)計(jì)

            本設(shè)計(jì)芯片與單片機(jī)的硬件連接比較簡(jiǎn)單,其中,并行數(shù)據(jù)端口 d_inout跟單片機(jī) p0口相連,接收單片機(jī)發(fā)出的低 8位地址, ale與單片機(jī)地址鎖存允許信號(hào)引腳相連,odd_check為奇偶校驗(yàn)結(jié)果輸出引腳,連接由使用者決定。3 模塊設(shè)計(jì)

            3.1 頂層模塊

          頂層模塊在各模塊設(shè)計(jì)之前作為統(tǒng)籌規(guī)劃整個(gè)程序,是設(shè)計(jì)過(guò)程中再繼續(xù)完善和修正的重要部分。在頂層模塊里根據(jù)不同的地址輸入,選擇標(biāo)志或者數(shù)據(jù)的傳送。為了更好地將兩次操作區(qū)分開來(lái)使編程更加容易,論文中還設(shè)計(jì)了一個(gè)標(biāo)志寄存器rd_check_counter,在不同的操作來(lái)時(shí),它的值不同。

            3.2中斷控制模塊

            中斷控制模塊要完成置標(biāo)志位,定時(shí)輸出中斷信號(hào)和向單片機(jī)傳送標(biāo)志位信息等功能。模塊接收端有中斷請(qǐng)求到來(lái),中斷控制模塊即將相應(yīng)收發(fā)器的標(biāo)志位置 1,在數(shù)據(jù)被讀取之后,又立刻將標(biāo)志位清 0。

            3.3收發(fā)器模塊

          收發(fā)器模塊結(jié)構(gòu)圖如圖 2b。在接收方面,收發(fā)器模塊實(shí)現(xiàn)接收數(shù)據(jù),并將數(shù)據(jù)串轉(zhuǎn)并,儲(chǔ)存到寄存器里等待單片機(jī)的讀取。在發(fā)送方面,收發(fā)器將單片機(jī)數(shù)據(jù)總線送過(guò)來(lái)的并行數(shù)據(jù)串行輸出。

            數(shù)據(jù)接收時(shí)數(shù)據(jù)經(jīng)過(guò)格式轉(zhuǎn)換后便被放入 8字節(jié)的緩存里面,該緩存在每次數(shù)據(jù)存入后就啟動(dòng)計(jì)數(shù)器,當(dāng)過(guò)一段時(shí)間還沒(méi)有新的數(shù)據(jù)存入時(shí),收發(fā)器即可以向中斷控制模塊提出中斷請(qǐng)求并且等待單片機(jī)對(duì)數(shù)據(jù)的讀取。發(fā)送數(shù)據(jù)時(shí),收發(fā)器接收到單片機(jī)送來(lái)的數(shù)據(jù)并將其存儲(chǔ)起來(lái),在串行數(shù)據(jù)發(fā)送設(shè)備準(zhǔn)備好的情況(txrdy為 1)下再進(jìn)行格式轉(zhuǎn)換并發(fā)送,無(wú)論接收還是發(fā)送串行數(shù)據(jù)都是通過(guò)外部時(shí)鐘進(jìn)行計(jì)數(shù)控制的。

            3.4地址寄存器模塊 .

            地址鎖存模塊在 ale信號(hào)(單片機(jī)地址鎖存允許信號(hào))到來(lái)時(shí)將地址低 8位鎖存起來(lái),并送給中斷控制和上層模塊使用。

            3.5芯片端口

            上述幾個(gè)模塊合成后的芯片外觀及其端口特征描述如下圖 3所示: 1、set_mode(0,1):兩位信號(hào)輸入引腳,用于模式的選擇,模式 1和模式 2分別用 01和 10來(lái)選擇。2、ale:地址鎖存允許信號(hào)輸入引腳,與單片機(jī)的 ale相連,在 ale下降沿的時(shí)候?qū)⒌刂返?8位鎖存到地址鎖存模塊。3、clk:時(shí)鐘信號(hào)輸入引腳,時(shí)鐘的頻率定為串行數(shù)據(jù)傳輸頻率的 4倍,如串行通信的波特率是9600bps,則 clk的頻率是 9600×4=38400Hz。

            4、cs:芯片總片選信號(hào)輸入引腳,低電平有效。

            5、rd,wr:?jiǎn)纹瑱C(jī)向芯片讀寫的控制引腳,低電平有效。

            6、rxd1,rxd2,rxd3,rxd4:串行輸入引腳。

            7、INT0:中斷信號(hào)輸出引腳,下降沿有效。

            8、odd_check1_o,odd_check2_o,odd_check3_o,odd_check4_o:送給單片機(jī)的奇偶校驗(yàn)標(biāo)志信號(hào)輸出引腳。

            9、rdfull:數(shù)據(jù)緩沖器標(biāo)志信號(hào)輸出引腳,該信號(hào)用‘1’和‘0’表明是否有收發(fā)器的緩存了數(shù)據(jù)尚未被提取。

            10、rdrdy1,rdrdy2,rdrdy3,rdrdy4:引腳分別用于表明各個(gè)收發(fā)器是否正忙,從該收發(fā)器開始接收數(shù)據(jù)到數(shù)據(jù)被單片機(jī)讀取整個(gè)過(guò)程,其相應(yīng)的rdrdy引腳輸出‘1’。

            11、txd1,txd2,txd3,txd4:串行數(shù)據(jù)輸出引腳。

            12、tdempty:該引腳輸出為‘1’時(shí)表明芯片已沒(méi)有正在發(fā)送或者是將要發(fā)送的數(shù)據(jù)。

            13、txrdy1,txrdy2,txrdy3,txrdy4:分別為收發(fā)器 1、2、3和 4可否進(jìn)行發(fā)送控制輸入端,輸入為‘1’表示可以進(jìn)行串行數(shù)據(jù)的發(fā)送。

            14、d_inout(7:0):雙向數(shù)據(jù)總線。應(yīng)與單片機(jī) p0口相連。

            15、addr_h(7:0):地址高 8位。

          4程序的綜合及仿真

          4.1 設(shè)計(jì)綜合及實(shí)現(xiàn)

            本設(shè)計(jì)綜合使用的工具是 Xilinx公司的 XST,它是內(nèi)嵌在 ISE7.2i里面的。綜合過(guò)程將把軟件設(shè)計(jì)的 HDL描述與硬件結(jié)構(gòu)掛鉤,是將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。本設(shè)計(jì)綜合時(shí)選用的芯片是Spartan-ⅡE系列的xc2s100e。

            綜合工具生成網(wǎng)表文件后,就可以實(shí)現(xiàn)設(shè)計(jì),實(shí)現(xiàn)的步驟有:轉(zhuǎn)換(將多個(gè)設(shè)計(jì)文件合并為一個(gè)網(wǎng)表),映射(將網(wǎng)表中的邏輯符號(hào)(門)整合到物理元件中),布局布線(將元件放到器件中,并將它們連接起來(lái),同時(shí)提取出時(shí)序數(shù)據(jù),并生成各種報(bào)告)。

          4.2 綜合布線結(jié)果及分析

          多串口單一中斷源的芯片設(shè)計(jì)

          多串口單一中斷源的芯片設(shè)計(jì)

            圖 4為資源利用結(jié)果圖表,由圖可見(jiàn),slices的占用量為 722個(gè),占該芯片 slices總數(shù)的 60%。slice registers的使用數(shù)量為 591個(gè),占該芯片總數(shù)的 24%。4輸入查找表的使用總量是 915個(gè),占該芯片查找表總數(shù)的 38%。

            4.3 布線后仿真

            本文中所舉出的測(cè)試均為布線后的仿真測(cè)試,該仿真的仿真延時(shí)文件包含的延時(shí)信息最全,不僅包含了門延時(shí),還包含了實(shí)際布線延時(shí),所以布局布線后仿真最準(zhǔn)確,能夠較好的反映芯片的實(shí)際工作情況。

          多串口單一中斷源的芯片設(shè)計(jì)

          多串口單一中斷源的芯片設(shè)計(jì)

            4.4測(cè)試結(jié)果及分析

            上面已經(jīng)對(duì)各模塊的各種功能進(jìn)行了很多測(cè)試,為了更好地驗(yàn)證所設(shè)計(jì)的芯片在實(shí)際中使用的可靠性,我們有必要進(jìn)行一次總體的測(cè)試,本次仿真測(cè)試共包括單片機(jī) 5次讀標(biāo)志,4次提取數(shù)據(jù),1

            次發(fā)送數(shù)據(jù)。測(cè)試結(jié)果及分析如下圖 5g所示:

          多串口單一中斷源的芯片設(shè)計(jì)

            測(cè)試結(jié)果我們還可以看到:

            1)芯片各收發(fā)器模塊可以同時(shí)工作

            2)發(fā)送與接收可以同時(shí)進(jìn)行

            3)接收緩存正常,并且在接收數(shù)據(jù)不足 8字節(jié)超時(shí)后時(shí)會(huì)自動(dòng)停止緩存,然后向芯片中斷管理模塊提出中斷請(qǐng)求

            4)中斷信號(hào)能夠正常輸出

            5)各收發(fā)器的中斷請(qǐng)求無(wú)遺漏

            6)收發(fā)器模塊的數(shù)據(jù)被讀取完畢之后,中斷標(biāo)志自動(dòng)清除,芯片不再發(fā)出中斷請(qǐng)求信號(hào)。

            5 結(jié) 論

            本文設(shè)計(jì)了一種實(shí)現(xiàn)高效的芯片。本設(shè)計(jì)的功能特點(diǎn):在中斷管理方面,利用單一的中斷源來(lái)管理多個(gè)擴(kuò)展串口,并保證多個(gè)串口中斷的無(wú)漏檢測(cè)與服務(wù);在數(shù)據(jù)傳送方面,實(shí)現(xiàn)串行數(shù)據(jù)的接收和發(fā)送,并且按照數(shù)據(jù)傳送是否有奇偶校驗(yàn)位分為兩種工作模式,在接收時(shí)具有數(shù)據(jù)緩存的功能。并且上述各個(gè)功能模塊在單一的可編程邏輯器件芯片就能實(shí)現(xiàn)。

            上述整個(gè)過(guò)程設(shè)計(jì)均采用 VHDL編程實(shí)現(xiàn),比以往電路手工設(shè)計(jì)的方法更加靈活,具有比較大的發(fā)展空間。文中分別利用 ModelSim和 ISE對(duì)程序進(jìn)行仿真和綜合布線,在仿真平臺(tái)上驗(yàn)證了設(shè)計(jì)的可行性,具有較好的應(yīng)用前景。

            本文作者創(chuàng)新點(diǎn):單一中斷源的芯片,利用單一的中斷源來(lái)管理多個(gè)擴(kuò)展串口,各個(gè)功能模塊在單一的可編程邏輯器件芯片就能實(shí)現(xiàn)。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();