Microchip UNI/O總線技術及其應用
④Bit4~Bit7。為無關位,讀出時為0。
(2)包含一個讀操作地址指針
在進行存儲陣列讀操作時,瀆操作地址指針會在每個字節發送后自動指向原地址加1的存儲單元。當到達最高地址時,如果主器件仍然發出MAK選擇繼續讀取,則地址指針的值會翻轉回到0x00地址處。在上電后,讀地址指針會保持上一次訪問的存儲單元的地址。
(3)支持頁寫功能
用WRITE指令可以向指定地址的存儲單元或者指定地址開始的存儲器區域寫入內容任意的數據。不過,在寫多個存儲單元時,必須限制在單個物理頁面內寫。物理頁邊界從頁大小(16字節)整數倍的地址開始,結束于頁大小的整數倍減1的地址。如果WRITE指令試圖跨越物理頁邊界進行,其結果是將超出頁邊界的數據寫回到當前頁的開始,即覆蓋先前存儲的數據,而不會如期望的那樣寫到下一貞。
2.2.3 UNI/O存儲器11XXX的讀寫程序
上電之后,由于11XXX處在關斷模式,而且總線處于高電平空閑狀態,所以主器件必須先在SCIO上產生一個高到低再到高的脈沖,使11XXX從關斷模式退出進入空閑模式,這樣11XXX才能按照命令序列所規定的流程響應總線上的其他信號,接收主器件發來的指令,并按指令要求完成規定的操作。
(1)寫程序流程
圖6是寫存儲陣列中未保護區塊的程序流程。圖中發送指令的操作可通過調用發送指令子程序來完成。圖7給出了發送指令程序流程。要寫存儲陣列中受保護的區塊,只需在執行WREN指令之前,用WRSR指令對BP0、BP1進行相應的設置,以暫時解除待寫區塊的保護,并在程序的最后再用WRSR指令對它們進行恢復即可。要全地址空間置1或擦除,必須先解除對整個存儲陣列的保護并使能寫操作,再發送SETAL或ERAL指令,指令發送之后用NoMAK來啟動內部寫操作,內部操作完成之后恢復對存儲陣列的保護即可。
(2)讀程序流程
隨機讀存儲陣列的程序流程是:先發送READ指令,再發送待讀單元地址。先高地址字節,后低地址字節。然后,從器件就會將該地址中的數據送到總線上,主器件收到第一個數據字節后,若還要讀取更多的數據,可以發送應答信號MAK。之后,從器件用SAK應答,并送出下一個數據字節。若要結束讀操作,主器件只要發送NoMAK即可。
要從存儲陣列的當前位置讀取數據可用CRRD指令來進行操作,其程序流程除了不需要傳送存儲器單元地址外,其余操作步驟與READ相同。
結語
UNI/O總線只有一根信號線,對I/O端口的占用最少,可有效地減小嵌入式系統的體積并降低產品成本,具有廣闊的應用前景。
評論