當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 1 前 言 在ARM+FPGA系統(tǒng)結(jié)構(gòu)中,實(shí)現(xiàn)基于ARM的嵌入式處理器和FPGA之間通信最簡(jiǎn)單的方法就是通過異步串行接口EIARS232C。考慮選用集成有UART(Universal Asynchronous Receiver / TraNSmitter )控制器

1 前 言

ARMFPGA系統(tǒng)結(jié)構(gòu)中,實(shí)現(xiàn)基于ARM的嵌入式處理器和FPGA之間通信最簡(jiǎn)單的方法就是通過異步串行接口EIARS232C。考慮選用集成有UART(Universal Asynchronous Receiver / TraNSmitter )控制器的嵌入式處理器(例如,EP7312),那么嵌入式處理器一側(cè)就具有了利用異步串行接口收、發(fā)通信的能力。然而,F(xiàn)PGA內(nèi)部并不擁有CPU控制單元,無法處理由UART控制器產(chǎn)生的中斷,所以FPGA一側(cè)不能利用現(xiàn)成的UART控制器構(gòu)成異步串行接口,必須將UART控制器的功能集成到FPGA內(nèi)部。

同一個(gè)系統(tǒng)中的ARM與FPGA之間屬于短距離通信連接,他們之間的異步串行通信并不需要完整的UART功能,那些RS232標(biāo)準(zhǔn)中的聯(lián)絡(luò)控制信號(hào)線可以省略,僅僅保留收、發(fā)數(shù)據(jù)線和地線,這樣給UART功能的FPGA編程實(shí)現(xiàn)帶來了極大的省略。嵌入式處理器EP7312帶有2個(gè)支持異步串行通信RS232的16550類型的UART,UART1不僅有TX,RX,而且支持Modem控制信號(hào),UART2只有標(biāo)準(zhǔn)的TX,RX以及地信號(hào),剛好能夠利用UART2與FPGA實(shí)現(xiàn)通 信。圖1是簡(jiǎn)化的異步串行通信連接示意圖。

2 簡(jiǎn)化UART功能的FPGA實(shí)現(xiàn)

本文將詳細(xì)地討論簡(jiǎn)化UART功能在FPGA中的實(shí)現(xiàn)方法。簡(jiǎn)單回顧一下異步串行通信的數(shù)據(jù)格式。圖2表明在異步傳送中串行發(fā)送一個(gè)數(shù)據(jù)字節(jié)的位定時(shí)關(guān)系(圖中沒有包括奇偶校驗(yàn)位)。發(fā)送一個(gè)完整的字節(jié)信息,首先是一個(gè)作為起始位的邏輯“0”位,接著是8個(gè)數(shù)據(jù)位,然后是1個(gè)、1+1/2個(gè)或2個(gè)停止位邏輯“1”位,數(shù)據(jù)線空閑時(shí)呈現(xiàn)為高或“1”狀態(tài)。在字符的8位數(shù)據(jù)部分,先發(fā)送數(shù)據(jù)的最低位,最后發(fā)送最高位。每位持續(xù)的時(shí)間是固定的,由發(fā)送器本地時(shí)鐘控制,每秒發(fā)送的數(shù)據(jù)位個(gè)數(shù),即為“波特率”。起始位和停止位起著很重要的作用。顯然,他們標(biāo)志每個(gè)字符的開始和結(jié)束,但更重要的是他們使接收器能把他的局部時(shí)鐘與每個(gè)新開始接收的字符再同步。異步通信沒有可參照的時(shí)鐘信號(hào),發(fā)送器隨時(shí)都可能發(fā)送數(shù)據(jù),任何時(shí)沿的出現(xiàn)時(shí)間,從而正確地采樣緊接著的10~11位(包括開始位、數(shù)據(jù)位和停止位)。接收器的時(shí)鐘與發(fā)送器的時(shí)鐘不是同一個(gè),因此,接收器采樣點(diǎn)的間隔跟由發(fā)送器時(shí)鐘所確定的位間隔時(shí)間不同,接收器一定不能讓他的相對(duì)時(shí)鐘速度導(dǎo)致采樣錯(cuò)誤。

比較而言,UART發(fā)送器部分發(fā)送串行數(shù)據(jù)過程的實(shí)現(xiàn)相對(duì)容易,只要對(duì)發(fā)送出去的數(shù)據(jù)電平做持續(xù)時(shí)間的定時(shí)即可。下面先對(duì)UART接收器部分的FPGA實(shí)現(xiàn)方法做詳細(xì)的描述。

2.1 UART接收器的FPGA實(shí)現(xiàn)

根據(jù)以上的敘述,由于串行數(shù)據(jù)幀與接收時(shí)鐘是異步的,所以接收器功能實(shí)現(xiàn)中的關(guān)鍵是接收器時(shí)鐘與每個(gè)接收字符的同步。一個(gè)有效的方法是接收器采用高速率時(shí)鐘對(duì)串行數(shù)據(jù)進(jìn)行采樣,通常采樣頻率是位時(shí)鐘頻率的整數(shù)倍。理論上倍數(shù)越高接收數(shù)據(jù)各位的分辨率越高,實(shí)際中,一般最大選擇16倍。

接收器應(yīng)該盡可能地在靠近位周期的中心處對(duì)每位采樣。如果接收器能很好地預(yù)測(cè)起始位的開始,那么他可在起始位的下降沿到來之后,等待半個(gè)位周期再采樣數(shù)據(jù)位。此后,接收器每等待一個(gè)位周期采樣一個(gè)數(shù)據(jù)位,直至收到最后一位為止。倘若接收時(shí)鐘的頻率足夠接近發(fā)送時(shí)鐘,使得最后位能在離該位的精確中心位置半個(gè)周期內(nèi)對(duì)他采樣,以上方案就能正確地工作。這意味著接收時(shí)鐘相對(duì)于發(fā)送時(shí)鐘在10~11個(gè)時(shí)鐘周期內(nèi),其增加和減少應(yīng)小于半個(gè)位的時(shí)間間隔。因此,要求收發(fā)雙方2個(gè)時(shí)鐘的誤差容限在5%以內(nèi)。

本文中接收器的實(shí)現(xiàn)采取5倍速采樣法,也就是接收采樣頻率是串行數(shù)據(jù)位頻率的5倍。圖3是將圖2中的起始位和部分?jǐn)?shù)據(jù)位放大,又把每個(gè)信息位分成5等份,每等份的時(shí)間寬度設(shè)為Ts。以5倍頻對(duì)信息位進(jìn)行采樣時(shí),每個(gè)信息位都將可能被采樣到5次。當(dāng)處于空閑狀態(tài)并檢測(cè)起始位時(shí),最早檢測(cè)到起始位低電平的時(shí)刻必將落在S0陰影區(qū),每次具體的采樣點(diǎn)會(huì)在S0陰影區(qū)隨機(jī)變化。檢測(cè)到起始位低電平后,間隔7×Ts時(shí)間,正好是第1位數(shù)據(jù)位的中間1/5處(圖3中D2陰影區(qū))。此后的數(shù)據(jù)位和停止位的采樣間隔都是5×Ts,所有采樣點(diǎn)均落在碼元的中間1/5處,采樣數(shù)據(jù)最可靠。采樣時(shí)鐘的產(chǎn)生由計(jì)數(shù)器控制,計(jì)數(shù)器時(shí)鐘為位時(shí)鐘5倍頻。

為了避免噪聲引起的起始位檢測(cè)錯(cuò)誤,要對(duì)起始位采樣兩次。從空閑狀態(tài),第1次采樣為低電平后,間隔2個(gè)Ts再采樣一次,如果仍為低電平,才認(rèn)定為有效的起始位;如果為高電平,再回到空閑狀態(tài)等待重新同步。

另外,在采樣停止位的時(shí)候也可以加入保護(hù)機(jī)制: 當(dāng)停止位采樣值為高電平時(shí),認(rèn)為同步和數(shù)據(jù)正確,裝人數(shù)據(jù)寄存器,否則認(rèn)為同步或傳輸錯(cuò)誤,此次采樣的字符作廢,將其舍棄。簡(jiǎn)化的UART功能框圖如圖4所示。EP7312所帶的UART控制器16550中,F(xiàn)IFO的深度為16 B。實(shí)際FPGA實(shí)現(xiàn)時(shí)根據(jù)具體應(yīng)用的不同,可以用RAM取代FIFO,本文只敘述圖4中接收器和發(fā)送器的實(shí)現(xiàn)方法。

在具體使用硬件描述語言VHDL編程實(shí)現(xiàn)時(shí),接收器5倍速采樣法的關(guān)鍵部分使用了一個(gè)狀態(tài)機(jī),狀態(tài)轉(zhuǎn)換圖如圖5所示。

2.2 UART發(fā)送器的FPGA實(shí)現(xiàn)

UART發(fā)送器的FPGA實(shí)現(xiàn)相對(duì)于接收器來說簡(jiǎn)單了很多。沒有數(shù)據(jù)要發(fā)送時(shí),發(fā)送數(shù)據(jù)寄存器為空,發(fā)送器處于空閑狀態(tài);當(dāng)檢測(cè)到發(fā)送數(shù)據(jù)寄存器滿信號(hào)后,發(fā)送器即發(fā)送起始位,同時(shí)8個(gè)數(shù)據(jù)位被并行裝入發(fā)送移位寄存器,停止位緊接著數(shù)據(jù)位指示數(shù)據(jù)幀結(jié)束。只有發(fā)送數(shù)據(jù)寄存器為空時(shí),RAM或FIFO中的待發(fā)送數(shù)據(jù)才能被裝入。程序中使用計(jì)數(shù)器保證各位周期定時(shí)正確,仍使用一個(gè)狀態(tài)機(jī)描述發(fā)送過程,圖6是發(fā)送器狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換示意圖。

3 仿真與結(jié)論

這里選用ACTEL公司的APA600系列的FPGA芯片,仿真工具使用MENTOR公司的ModelSim。圖7是接收器模塊的功能仿真時(shí)序圖,其中只截取了一個(gè)接收數(shù)據(jù)幀的時(shí)間長(zhǎng)度。從圖7中可以看出一個(gè)假起始位被正確判斷,接收器與接收數(shù)據(jù)實(shí)現(xiàn)同步,串行數(shù)據(jù)被準(zhǔn)確接收。狀態(tài)機(jī)狀態(tài):i代表空閑;rx代表起始位確認(rèn);s代表數(shù)據(jù)采樣和停止?fàn)顟B(tài)確認(rèn);g代表數(shù)據(jù)正確接收。

圖8是發(fā)送器模塊功能仿真時(shí)序圖,也是只截取了一個(gè)發(fā)送數(shù)據(jù)幀長(zhǎng)。圖8中狀態(tài)機(jī)狀態(tài):first代表空閑;second(時(shí)間太短,圖中未顯示相應(yīng)文字)和third代表發(fā)送數(shù)據(jù)和停止位。

我們已經(jīng)將上述實(shí)現(xiàn)簡(jiǎn)化UART功能的編程方法應(yīng)用到了ARM+FPGA結(jié)構(gòu)系統(tǒng)的編/拆和發(fā)送/接收串行信息幀模塊中,工作穩(wěn)定,有較高實(shí)用價(jià)值。

參考文獻(xiàn)

1]張明峰.PIC單片機(jī)軟件異步串行口實(shí)現(xiàn)技巧[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003,(4).

2]Lattice Reference Designs .Universal asy - nchron - ous receiver/ tuansmitter .

3]鄔寬明.單片機(jī)外圍器件實(shí)用手冊(cè)數(shù)據(jù)傳輸接口器件分冊(cè)[M].北京:北京航空航天大學(xué)出版社,1998.


本站聲明: 本文章由作者或相關(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日 /美通社/ -- 英國(guó)汽車技術(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中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

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

8月28日消息,在2024中國(guó)國(guó)際大數(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íng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎ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)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(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年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

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