<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的PXA270外設時(shí)序轉換接口設計方案

基于FPGA的PXA270外設時(shí)序轉換接口設計方案

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

1 引言

本文引用地址:http://dyxdggzs.com/article/201706/349292.htm

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

  2 時(shí)序轉換接口整體設計

  2.1 FPGA對外接白

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

  2.2 內部功能實(shí)現

  PXA270和外設之間的連接是將FPGA中的作為數據中轉站,以此間接相連。該設計由以下4個(gè)功能模塊組成。

  (1)PXA270對外設指定寄存器單次寫(xiě)操作PXA270先將所要寫(xiě)的數據送人,然后PXA270向FPGA的命令寄存器寫(xiě)入對該外設指定寄存器的單次寫(xiě)指令,然后FP-GA根據接收到的命令將RAM中的數據輸出到外設數據總線(xiàn),同時(shí)給出對外設的寫(xiě)時(shí)序。

  (2)PXA270對外設指定寄存器單次讀操作PXA270先向FPGA的命令寄存器寫(xiě)入對該外設指定寄存器的單次讀指令,此時(shí),FPGA給出對外設的讀時(shí)序,并驅動(dòng)RAM的地址總線(xiàn)、寫(xiě)時(shí)鐘等信號,將外設數據總線(xiàn)上的數據傳送到RAM中。再延時(shí)1μs,PXA270從RAM中讀出數據。

  (3)PXA270對外設批數據寫(xiě)操作與單次寫(xiě)操作不同的是,PXA270需先將所要寫(xiě)入的數據存儲到RAM的連續空間,然后向FPGA的命令寄存器寫(xiě)入批數據寫(xiě)操作指令,FP-GA根據接收到的命令將RAM中的數據分次送至外設數據總線(xiàn),且需保證向COM20020的寫(xiě)時(shí)序與之同步。

  (4)PXA270對外設批數據讀操作 由FPGA給出對外設的連續多次讀時(shí)序將外設中的數據送人RAM,完成存儲工作。PXA270等待批數據讀完成中斷發(fā)生后對RAM進(jìn)行連續讀。

  3 功能模塊設計

  3.1 時(shí)序發(fā)生模塊設計

  COM20020有80xx-like和68xx-like兩種總線(xiàn)訪(fǎng)問(wèn)方式。這里中實(shí)現68xx-like訪(fǎng)問(wèn)方式,圖2為其讀寫(xiě)訪(fǎng)問(wèn)時(shí)序。


讀寫(xiě)時(shí)序的共同要求為:片選信號CS必須先于DS至少5 ns,并且只允許在DS無(wú)效之后CS才能恢復為高電平;讀寫(xiě)方向信號DIR應在DS有效前至少10 ns建立;DS高電平寬度不小于20 ns。兩者的不同要求:寫(xiě)時(shí)序的地址總線(xiàn)先于操作脈沖DS至少15 ns建立,DS低電平不小于20 ns,數據總線(xiàn)有效數據必須在DS變高之前至少30 ns建立,保持至DS變高后至少10 ns;而讀時(shí)序的地址總線(xiàn)先于片選信號至少15 ns建立,DS低電平不小于60 ns,DS變低到數據總線(xiàn)數據有效的間隔最大為40 ns,DS變高到數據總線(xiàn)高阻抗的間隔最大為20 ns,這是COM20020作為數據輸出方給訪(fǎng)問(wèn)設備提供的特性。針對以上讀寫(xiě)時(shí)序的要求,具體設計如下:DIR在一次操作中只有高或低電平一種可能,通過(guò)命令寄存器在操作前事先給出,而后給出使能信號,DS在CS有效之后變低,而在CS無(wú)效之前變高,以便數據可靠鎖存。

  圖3為COM20020的時(shí)序原理圖,從時(shí)序分析可得出如下設計方案:DIR用于指示操作是讀還是寫(xiě),DIR=‘1’為讀,否則為寫(xiě)。在操作前先對DIR 賦值;在EN有效時(shí)選擇CS,CLK的下一次上升沿變?yōu)橛行?。這樣是給寫(xiě)操作對COM20020數據總線(xiàn)準備數據之用,不影響讀操作;DS選擇在CS有效的下一個(gè)CLK上升沿變?yōu)橛行?,但在CS無(wú)效前兩個(gè)時(shí)鐘周期給出上升沿,以滿(mǎn)足“片選信號CS必須先于DS至少5 ns,并且只能在DS無(wú)效之后恢復為高電平”,并且DS中間應有至少60ns的時(shí)鐘寬度,因而保持3個(gè)CLK周期有效。圖4為CommandGenerator時(shí)序仿真圖。采用計數器進(jìn)行時(shí)序同步。以下給出VHDL源代碼。




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


圖6為一次批數據向RAM中寫(xiě),而后啟動(dòng)DMA傳輸,將數據從RAM送至COM20020的時(shí)序仿真。在WRCLOCK上升沿時(shí),RAM將datain總線(xiàn)上的數據存儲到WR_AD-DRESS所指向的字節地址空間,WRCLOCK信號是由PXA270的WE信號與分配給RAM的片選信號(高電平有效)相與而得。對RAM進(jìn)行模擬寫(xiě)時(shí)必須確保AUTOWREN無(wú)效(低電平);在檢驗數據DMA傳輸的RAM輸出環(huán)節,WRCLOCK應不再出現上升沿信號,以防RAM同時(shí)讀寫(xiě)造成輸出不定值。此外,每個(gè)數據從outputdata端口輸出時(shí),CS、DS在一定延時(shí)后(1個(gè)CLK時(shí)鐘周期)給時(shí)序產(chǎn)生留足夠時(shí)間。需說(shuō)明:COM20020內部有2 K字節的RAM空間,用于存放待發(fā)送或已接收的數據包,在向RAM中寫(xiě)數據包前,指定該數據包的存放位置,然后將COM20020中的指針自動(dòng)移動(dòng)位置 1,則只需連續的向該RAM中寫(xiě)數據,而不必給出地址信號。


3.3 對外設指定寄存器操作

  對外設指定寄存器操作比批數據傳送實(shí)現簡(jiǎn)單,只需將操作次數降為1次,并對 COM20020的A2~A0提供相應的地址即可。指定寄存器操作將數據存儲在RAM的高512字節空間,并且只占用其中低8個(gè)字節,在PXA270編程時(shí),需確保PXA270送入RAM的地址與命令寄存器中的RAM存儲地址COMMANDBYTE[2..0]相對應。

  4 結論

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



關(guān)鍵詞: pxa270 時(shí)序匹配 雙口RAM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>