一種基于FPGA的PXA270外設時序轉換接口設計

圖5為批數據從WRRAM向外設傳送的連續時鐘產生和自動地址生成原理圖。其中,lpm_counter0為帶有異步清零和進位信號的增計數; AutoAccessDataNumsOnce在EN='1'時,產生一次批傳送時鐘,根據COM20020的長短數據包傳送要求,在CCESSTYPE =‘1’時傳送長數據包(512 B),否則傳送短數據包(256 B)。FRE信號同時提供WRRAM的rdclock和lpm_counter0的clock信號。
圖6為一次批數據向RAM中寫,而后啟動DMA傳輸,將數據從RAM送至COM20020的時序仿真。在WRCLOCK上升沿時,RAM將datain總線上的數據存儲到WR_AD-DRESS所指向的字節地址空間,WRCLOCK信號是由PXA270的WE信號與分配給RAM的片選信號(高電平有效)相與而得。對RAM進行模擬寫時必須確保AUTOWREN無效(低電平);在檢驗數據DMA傳輸的RAM輸出環節,WRCLOCK應不再出現上升沿信號,以防RAM同時讀寫造成輸出不定值。此外,每個數據從outputdata端口輸出時,CS、DS在一定延時后(1個CLK時鐘周期)給時序產生留足夠時間。需說明:COM20020內部有2 K字節的RAM空間,用于存放待發送或已接收的數據包,在向RAM中寫數據包前,指定該數據包的存放位置,然后將COM20020中的指針自動移動位置 1,則只需連續的向該RAM中寫數據,而不必給出地址信號。
3.3 對外設指定寄存器操作
對外設指定寄存器操作比批數據傳送實現簡單,只需將操作次數降為1次,并對 COM20020的A2~A0提供相應的地址即可。指定寄存器操作將數據存儲在RAM的高512字節空間,并且只占用其中低8個字節,在PXA270編程時,需確保PXA270送入RAM的地址與命令寄存器中的RAM存儲地址COMMANDBYTE[2..0]相對應。
4 結論
本設計解決ARCNET協議專用器件應用于列車通信網絡中的時序匹配問題,實現了PXA270處理器與COM20020的時序轉換。此外,對擴展其他總線訪問類型提供了參考框架,可通過修改CommandGenerator中COM20020時序,實現不同外設總線訪問類型的擴展;修改 AutoAccessDataNun-sOnce中的ACCESSTYPE,可配置批數據操作的數據種類。
評論