Microchip UNI/O總線技術及其應用
(3)指令幀
指令幀用于傳送指令,由指令編碼和應答序列組成。指令及其編碼往各種UNI/O從器件中定義。指令幀中的主應答位應根據指令是否要求傳輸其他數據字節確定。當指令要求傳輸其他數據字節時,該位為MAK,否則為NoMAK。從應答位正常情況下為SAK。
1.3.3 UNI/O總線的命令序列
圖3所示的是用于執行8位地址從器件指令的命令序列。其中字節幀的數量在總線規范中未進行限制,只要前一個字節幀中的主應答位為MAK就表示期望傳輸下一個字節幀。不過,字節幀的實際數量必須符合從器件指令的使用規范。在此前提下,可以由用戶程序根據其功能決定。用于執行12位地址從器件指令的命令序列如圖4所示。
2 UNI/O從器件與單片機的接口設計
11XXX系列EEPROM是Microchip技術公司最新推出的、支持UNI/O總線協議的存儲器產品。下面就以該存儲器的使用為例,詳細介紹UNI/O總線系統的應用設計方法。
2.1 硬件設計
圖5給出了11XXX系列EEPROM與單片機的接口原理圖。圖中,SCIO引腳上接一個20 kΩ的上拉電阻是為了確保總線在上電/掉電序列期間以及未被驅動時處于空閑狀態。VCC和VSS之間接入一個0.1μF的去耦電容是為了濾除VCC上的噪聲。
2.2 軟件設計
2.2.1 UNI/O存儲器11XXX的操作指令
11XXX系列存儲器共有9條操作指令,其指令編碼和功能描述如表1所列。
2.2.2 UNI/O存儲器11XXX的高級特性
11XXX器件除了具有EEPROM存儲器的基本特性、支持UNI/O總線協議外,還有以下高級特性。這些高級特性也是編寫接口程序的基本依據。
(1)內置了一個狀態寄存器
狀態寄存器可以用來提供狀態信息和片內數據的保護控制。其各位的功能定義如下:
①Bit0。為寫進行位WIP,用于表明11XXX是否忙于寫操作。當它為1時,表明正在進行寫操作;為0時,表明沒有進行寫操作。此位只讀。要編寫高效率的寫存儲陣列程序,可采用WIP查詢來及時檢測寫周期的結束。
②Bit1。為寫使能鎖存器位WEL,用于表明寫使能鎖存器的狀態。當它為1時,鎖存器允許存儲陣列無保護塊和狀態寄存器的寫入操作;當置為0時,禁止寫入操作。只能使用WREN指令來將此位置1,但會在上電或成功執行了以下指令之一時復位。這些指令包括:WRDI、WRSR、WRITE、SETAL和ERAL。
③Bit2~Bit3。是塊保護位BP0和BP1,用于表明當前哪些塊被寫保護。這些位可以由用戶通過WRSR指令進行設置。這些位是非易失性的。表2給出了利用BP0和BP1對存儲器進行分塊保護的方案。
評論