基于FPGA的PXA270外設時(shí)序轉換接口設計
圖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)行
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ò )中的時(shí)序匹配問(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)。
評論