www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]1 引言 ARCNET協(xié)議應(yīng)用于高速動(dòng)車(chē)組列車(chē)通信網(wǎng)絡(luò)時(shí),產(chǎn)生中央控制單元處理器PXA270與專(zhuān)用協(xié)議控制器件COM20020相連的時(shí)序不匹配問(wèn)題,若用通用數(shù)字電路模塊進(jìn)行時(shí)序轉(zhuǎn)換,PXA270需占用PXA270專(zhuān)門(mén)的資源(CPU時(shí)間

1 引言
    ARCNET協(xié)議應(yīng)用于高速動(dòng)車(chē)組列車(chē)通信網(wǎng)絡(luò)時(shí),產(chǎn)生中央控制單元處理器PXA270與專(zhuān)用協(xié)議控制器件COM20020相連的時(shí)序不匹配問(wèn)題,若用通用數(shù)字電路模塊進(jìn)行時(shí)序轉(zhuǎn)換,PXA270需占用PXA270專(zhuān)門(mén)的資源(CPU時(shí)間片)對(duì) COM20020的寄存器、數(shù)據(jù)包緩沖區(qū)進(jìn)行低速讀寫(xiě)訪問(wèn)(對(duì)COM20020的相鄰兩次讀操作相隔至少300 ns),這樣將增加處理器的負(fù)擔(dān)?;谶@種現(xiàn)狀,提出一種基于FPGA的PXA270外設(shè)時(shí)序轉(zhuǎn)換接口設(shè)計(jì)方案,以FPGA為橋梁進(jìn)行時(shí)序轉(zhuǎn)換,并增加存儲(chǔ)器直接訪問(wèn)DMA(Direct Memory Aeeess)功能,即FPGA自動(dòng)完成數(shù)據(jù)包的收發(fā)工作,PXA270則只需高速讀寫(xiě)訪問(wèn)FPGA中的同步雙口RAM。

2 時(shí)序轉(zhuǎn)換接口整體設(shè)計(jì)
2.1 FPGA對(duì)外接白
    采用FPGA連接PXA270處理器與外設(shè)以解決PXA270處理器與外設(shè)直接連接時(shí)的時(shí)序不匹配問(wèn)題。如圖1所示,F(xiàn)PGA從PXA270處理器獲得地址總線(ADDRBUS[17..14], ADDRBUS[9..0]),片選信號(hào)(SYSCS5),讀允許(SYSOE),寫(xiě)允許(SYSWE),并提供雙向數(shù)據(jù)端口DATABUS[7..0] (可根據(jù)實(shí)際應(yīng)用修改為32位或16位等),中斷(interrupt);同時(shí),F(xiàn)PGA向COM20020提供特定的總線接口,包括 COM20020_DS,COM20020_CS,COM20020_DIR,COM20020_DATABUS [7..0],COM20020_ADDRBUS[2..0]等。

2.2 內(nèi)部功能實(shí)現(xiàn)
    PXA270和外設(shè)之間的連接是將FPGA中的雙口RAM作為數(shù)據(jù)中轉(zhuǎn)站,以此間接相連。該設(shè)計(jì)由以下4個(gè)功能模塊組成。
    (1)PXA270對(duì)外設(shè)指定寄存器單次寫(xiě)操作PXA270先將所要寫(xiě)的數(shù)據(jù)送人雙口RAM,然后PXA270向FPGA的命令寄存器寫(xiě)入對(duì)該外設(shè)指定寄存器的單次寫(xiě)指令,然后FP-GA根據(jù)接收到的命令將RAM中的數(shù)據(jù)輸出到外設(shè)數(shù)據(jù)總線,同時(shí)給出對(duì)外設(shè)的寫(xiě)時(shí)序。
    (2)PXA270對(duì)外設(shè)指定寄存器單次讀操作PXA270先向FPGA的命令寄存器寫(xiě)入對(duì)該外設(shè)指定寄存器的單次讀指令,此時(shí),F(xiàn)PGA給出對(duì)外設(shè)的讀時(shí)序,并驅(qū)動(dòng)RAM的地址總線、寫(xiě)時(shí)鐘等信號(hào),將外設(shè)數(shù)據(jù)總線上的數(shù)據(jù)傳送到RAM中。再延時(shí)1μs,PXA270從RAM中讀出數(shù)據(jù)。
    (3)PXA270對(duì)外設(shè)批數(shù)據(jù)寫(xiě)操作與單次寫(xiě)操作不同的是,PXA270需先將所要寫(xiě)入的數(shù)據(jù)存儲(chǔ)到RAM的連續(xù)空間,然后向FPGA的命令寄存器寫(xiě)入批數(shù)據(jù)寫(xiě)操作指令,F(xiàn)P-GA根據(jù)接收到的命令將RAM中的數(shù)據(jù)分次送至外設(shè)數(shù)據(jù)總線,且需保證向COM20020的寫(xiě)時(shí)序與之同步。
    (4)PXA270對(duì)外設(shè)批數(shù)據(jù)讀操作 由FPGA給出對(duì)外設(shè)的連續(xù)多次讀時(shí)序?qū)⑼庠O(shè)中的數(shù)據(jù)送人RAM,完成存儲(chǔ)工作。PXA270等待批數(shù)據(jù)讀完成中斷發(fā)生后對(duì)RAM進(jìn)行連續(xù)讀。


3 功能模塊設(shè)計(jì)
3.1 時(shí)序發(fā)生模塊設(shè)計(jì)
    COM20020有80xx-like和68xx-like兩種總線訪問(wèn)方式。這里中實(shí)現(xiàn)68xx-like訪問(wèn)方式,圖2為其讀寫(xiě)訪問(wèn)時(shí)序。

    讀寫(xiě)時(shí)序的共同要求為:片選信號(hào)CS必須先于DS至少5 ns,并且只允許在DS無(wú)效之后CS才能恢復(fù)為高電平;讀寫(xiě)方向信號(hào)DIR應(yīng)在DS有效前至少10 ns建立;DS高電平寬度不小于20 ns。兩者的不同要求:寫(xiě)時(shí)序的地址總線先于操作脈沖DS至少15 ns建立,DS低電平不小于20 ns,數(shù)據(jù)總線有效數(shù)據(jù)必須在DS變高之前至少30 ns建立,保持至DS變高后至少10 ns;而讀時(shí)序的地址總線先于片選信號(hào)至少15 ns建立,DS低電平不小于60 ns,DS變低到數(shù)據(jù)總線數(shù)據(jù)有效的間隔最大為40 ns,DS變高到數(shù)據(jù)總線高阻抗的間隔最大為20 ns,這是COM20020作為數(shù)據(jù)輸出方給訪問(wèn)設(shè)備提供的特性。針對(duì)以上讀寫(xiě)時(shí)序的要求,具體設(shè)計(jì)如下:DIR在一次操作中只有高或低電平一種可能,通過(guò)命令寄存器在操作前事先給出,而后給出使能信號(hào),DS在CS有效之后變低,而在CS無(wú)效之前變高,以便數(shù)據(jù)可靠鎖存。
    圖3為COM20020的時(shí)序原理圖,從時(shí)序分析可得出如下設(shè)計(jì)方案:DIR用于指示操作是讀還是寫(xiě),DIR=‘1’為讀,否則為寫(xiě)。在操作前先對(duì)DIR 賦值;在EN有效時(shí)選擇CS,CLK的下一次上升沿變?yōu)橛行?。這樣是給寫(xiě)操作對(duì)COM20020數(shù)據(jù)總線準(zhǔn)備數(shù)據(jù)之用,不影響讀操作;DS選擇在CS有效的下一個(gè)CLK上升沿變?yōu)橛行?,但在CS無(wú)效前兩個(gè)時(shí)鐘周期給出上升沿,以滿足“片選信號(hào)CS必須先于DS至少5 ns,并且只能在DS無(wú)效之后恢復(fù)為高電平”,并且DS中間應(yīng)有至少60 ns的時(shí)鐘寬度,因而保持3個(gè)CLK周期有效。圖4為CommandGenerator時(shí)序仿真圖。采用計(jì)數(shù)器進(jìn)行時(shí)序同步。以下給出VHDL源代碼。

<fieldset id="qobom"><button id="qobom"></button></fieldset>

    圖5為批數(shù)據(jù)從WRRAM向外設(shè)傳送的連續(xù)時(shí)鐘產(chǎn)生和自動(dòng)地址生成原理圖。其中,lpm_counter0為帶有異步清零和進(jìn)位信號(hào)的增計(jì)數(shù); AutoAccessDataNumsOnce在EN='1'時(shí),產(chǎn)生一次批傳送時(shí)鐘,根據(jù)COM20020的長(zhǎng)短數(shù)據(jù)包傳送要求,在CCESSTYPE =‘1’時(shí)傳送長(zhǎng)數(shù)據(jù)包(512 B),否則傳送短數(shù)據(jù)包(256 B)。FRE信號(hào)同時(shí)提供WRRAM的rdclock和lpm_counter0的clock信號(hào)。

    圖6為一次批數(shù)據(jù)向RAM中寫(xiě),而后啟動(dòng)DMA傳輸,將數(shù)據(jù)從RAM送至COM20020的時(shí)序仿真。在WRCLOCK上升沿時(shí),RAM將datain總線上的數(shù)據(jù)存儲(chǔ)到WR_AD-DRESS所指向的字節(jié)地址空間,WRCLOCK信號(hào)是由PXA270的WE信號(hào)與分配給RAM的片選信號(hào)(高電平有效)相與而得。對(duì)RAM進(jìn)行模擬寫(xiě)時(shí)必須確保AUTOWREN無(wú)效(低電平);在檢驗(yàn)數(shù)據(jù)DMA傳輸?shù)腞AM輸出環(huán)節(jié),WRCLOCK應(yīng)不再出現(xiàn)上升沿信號(hào),以防RAM同時(shí)讀寫(xiě)造成輸出不定值。此外,每個(gè)數(shù)據(jù)從outputdata端口輸出時(shí),CS、DS在一定延時(shí)后(1個(gè)CLK時(shí)鐘周期)給時(shí)序產(chǎn)生留足夠時(shí)間。需說(shuō)明:COM20020內(nèi)部有2 K字節(jié)的RAM空間,用于存放待發(fā)送或已接收的數(shù)據(jù)包,在向RAM中寫(xiě)數(shù)據(jù)包前,指定該數(shù)據(jù)包的存放位置,然后將COM20020中的指針自動(dòng)移動(dòng)位置 1,則只需連續(xù)的向該RAM中寫(xiě)數(shù)據(jù),而不必給出地址信號(hào)。
3.3 對(duì)外設(shè)指定寄存器操作
    對(duì)外設(shè)指定寄存器操作比批數(shù)據(jù)傳送實(shí)現(xiàn)簡(jiǎn)單,只需將操作次數(shù)降為1次,并對(duì) COM20020的A2~A0提供相應(yīng)的地址即可。指定寄存器操作將數(shù)據(jù)存儲(chǔ)在RAM的高512字節(jié)空間,并且只占用其中低8個(gè)字節(jié),在PXA270編程時(shí),需確保PXA270送入RAM的地址與命令寄存器中的RAM存儲(chǔ)地址COMMANDBYTE[2..0]相對(duì)應(yīng)。

4 結(jié)論
    本設(shè)計(jì)解決ARCNET協(xié)議專(zhuān)用器件應(yīng)用于列車(chē)通信網(wǎng)絡(luò)中的時(shí)序匹配問(wèn)題,實(shí)現(xiàn)了PXA270處理器與COM20020的時(shí)序轉(zhuǎn)換。此外,對(duì)擴(kuò)展其他總線訪問(wèn)類(lèi)型提供了參考框架,可通過(guò)修改CommandGenerator中COM20020時(shí)序,實(shí)現(xiàn)不同外設(shè)總線訪問(wèn)類(lèi)型的擴(kuò)展;修改 AutoAccessDataNun-sOnce中的ACCESSTYPE,可配置批數(shù)據(jù)操作的數(shù)據(jù)種類(lèi)。

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

最近為什么越來(lái)越多的研究開(kāi)始利用FPGA作為CNN加速器?FPGA與CNN的相遇究竟能帶來(lái)什么神奇效果呢?原來(lái),F(xiàn)PGA擁有大量的可編程邏輯資源,相對(duì)于GPU,它的可重構(gòu)性以及高功耗能效比的優(yōu)點(diǎn),是GPU無(wú)法比擬的;同時(shí)...

關(guān)鍵字: FPGA 可編程邏輯資源 GPU

FPGA的應(yīng)用領(lǐng)域包羅萬(wàn)象,我們今天來(lái)看看在音樂(lè)科技領(lǐng)域及醫(yī)療照護(hù)的智能巧思。

關(guān)鍵字: FPGA 科技領(lǐng)域 智能

強(qiáng)大的產(chǎn)品可降低信號(hào)噪音并提高分辨率與動(dòng)態(tài)

關(guān)鍵字: Spectrum儀器 數(shù)字化儀 FPGA

最近某項(xiàng)目采用以太網(wǎng)通信,實(shí)踐起來(lái)有些奇怪,好像設(shè)計(jì)成只能應(yīng)答某類(lèi)計(jì)算機(jī)的ICMP(ping)命令, 某類(lèi)計(jì)算機(jī)指的是Windows特定系統(tǒng),其他系統(tǒng)發(fā)送ping都不能正確識(shí)別。

關(guān)鍵字: 嵌入式Linux FPGA 協(xié)議

近兩年,國(guó)外廠商的FPGA芯片價(jià)格飆升,由于價(jià)格,貨期,出口管制等多方面因素的影響,很多公司都在尋找FPGA國(guó)產(chǎn)化替代方案。我工作中正在使用的幾款芯片也面臨停產(chǎn)的風(fēng)險(xiǎn),用一片少一片,了解到國(guó)產(chǎn)FPGA發(fā)展的也不錯(cuò),完全自...

關(guān)鍵字: FPGA 芯片 EDA

本篇是FPGA之旅設(shè)計(jì)的第十二例,在前面的例程中,完成了DS18B20溫度傳感器數(shù)據(jù)的采集,并且將采集到的數(shù)據(jù)顯示在數(shù)碼管上。由于本例將對(duì)溫濕度傳感器DHT11進(jìn)行采集,而且兩者的數(shù)據(jù)采集過(guò)程類(lèi)似,所以可以參考一下前面的...

關(guān)鍵字: FPGA DS18B20溫度傳感器

這是FPGA之旅設(shè)計(jì)的第十三例啦,本例是一個(gè)綜合性的例程,基于OLED屏幕顯示,和DHT11溫濕度采集,將DHT11采集到的溫濕度顯示到OLED屏幕上。

關(guān)鍵字: FPGA OLED屏幕

第八例啦,本例將介紹如何通過(guò)FPGA采集DS18B20傳感器的溫度值。

關(guān)鍵字: FPGA DS18B20傳感器

這是FPGA之旅設(shè)計(jì)的第九例啦!??!本例將介紹如何使用FPGA驅(qū)動(dòng)OLED屏幕,并在接下來(lái)的幾例中,配合其它模塊,進(jìn)行一些有趣的綜合實(shí)驗(yàn)。由于使用的OLED屏是IIC接口的,對(duì)IIC接口不是很清楚的,可以參考第五例的設(shè)計(jì)...

關(guān)鍵字: FPGA OLED屏幕

這是FPGA之旅設(shè)計(jì)的第十例啦,在上一例中,已經(jīng)成功驅(qū)動(dòng)了OLED屏幕,本例將結(jié)合上一例,以及第四例多bytes串口通信做一個(gè)有趣的例程。

關(guān)鍵字: FPGA OLED屏 串口

電子設(shè)計(jì)自動(dòng)化

21191 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉