熊俊俏 (武漢工程大學電氣信息學院,湖北武漢430073)
許多數據采集場合出現數據不能或不必要實時傳輸,需要對數據進行穩定性、可靠性和和安全地存儲,這就對數據采集轉存系統的容量提出了更高的要求。以MD110程控交換機為例,筆者設計了大容量的數據轉存系統,存儲容量達到16Mb,能存儲12.5萬條電話記錄,滿足1mon的電話記錄容量需要,較好地解決MD110程控交換機存儲空間小的問題。
系統硬件由DS80C320單片機系統、程序存儲器 (EPROM)、大容量數據存儲器 (NVRAM)和非易失性的串行存儲器等組成,系統框圖如圖1所示。單片機80C320擁有 8051內核,工作時鐘達到33MHz的高速處理器,擁有 2個串口(外部電平轉換選用MAX232)、可編程的看門狗定時器、掉電中斷保護等功能,在高速數據處理、協議轉換等方面應用廣泛[1~4]。大容量的數據存儲器選用HK12A5,為NVRAM器件,單片容量為4Mb,數據保存可達10a以上,這里選用4片HK12A5,總容量達到16Mb。

圖1 系統框圖
80C320單片機有4組IO端口,P0為數據/地址復用,P1為聲光報警、擴展串口、掉電保護的串行存儲器接口使用,P3口為外中斷、串口、讀寫控制等使用。因此,對于16Mb的外部存儲空間,需要進行地址擴展,這里采用大規模可編程器件ISPLsi1016進行擴展。
由于存儲器要實時寫入和批量讀取數據,因此必須記錄數據寫入和讀取的地址。由于交換機MD110的數據記錄中的日期和時間不含時間秒,為了數據記錄的完整性,在記錄存儲中還需要由單片機產生時間秒,添加到記錄中,系統由定時器產生秒,并安排存儲空間保存。考慮到數據記錄的安全性,系統設有報警地址 (距離上次讀數據地址一定的空間),即寫地址不能超過讀地址,具體的端口與空間分配如表1所示。

表1 系統I/O分配與存儲空間分配
系統設計中,采用了2片可編程器件,其中GAL16V8用于替代74LS373,用于改善電路PCB板設計,使布線更加流暢,適合系統高速運行,具體的設計可參考文獻[5];可編程器件 ISPLsi1016為2000門的邏輯電路,用于擴展地址空間,內部設計2個8位寄存器和一個3~8譯碼器,譯碼器產生4片HK12A5的片選信號,其結構如圖2所示。

圖2 地址空間的擴展電路
顯然,在讀寫數據時,將首先確定讀寫數據的地址,高位地址分別寫入鎖存器0和鎖存器1中,低位地址A0~A7則通過指令賦給DPL寄存器,最后通過MOVX指令進行外部數據的讀寫操作。地址寄存器每操作一次,自動加1并保存,地址空間為環形結構,即達到最大存儲空間 (3FFFH)時將自動回到起始地址0000H。
由于數據記錄的重要性,系統必須采用較強的保護措施。首先考慮掉電保護,由于HK12A5為NVRAM,因此掉電對數據存儲器沒有影響,但數據的讀寫地址是需要保存的。系統選用非易失性的93C46串行存儲器,在掉電時可及時保存讀寫數據地址、報警地址和重要的標志位等。
同時,考慮到數據讀、寫的安全性,除分別有讀、寫數據地址存儲區外,還設有報警地址。報警地址與讀數據地址間留有100個記錄的空間,當寫數據地址達到報警地址時,系統提供聲光報警,提示用戶盡快將數據記錄轉存到上位機。若用戶開始讀數據記錄時,讀數據地址與報警地址一并后移,否則當寫數據地址達到讀數據地址時,將停止保存新數據記錄,確保數據空間的數據完整。
系統軟件包括存儲控制器和上位機2部分,上位機的軟件設計可參考文獻 [6],下面筆者重點介紹存儲控制器的軟件設計。
控制器程序由主程序、串口中斷服務子程序、定時器中斷服務子程序、看門狗掉電保護中斷服務子程序等組成。主程序完成地址空間的初始化、定時器的設置、2個串口通信的波特率設置等,其中串口1采用查詢方式與上位機通信,串口0采用中斷方式與交換機通信。
圖3為主程序流程圖,完成初始化設置,并采用查詢方式與上位機進行通信,上位機可通過命令讀取和設置當前的讀地址值,也可對時間秒清零,通過呼叫信號采集數據記錄,上位機接收一個記錄后將再次發送呼叫信號。在數據傳輸過程中,讀地址將不斷更新,報警地址也將隨之更新。當讀地址等于寫地址時,將向上位機發送實時數據指令,上位機將啟動數據記錄的實時顯示[6]。

圖3 主程序流程
串口0的中斷服務子程序用于接收交換機的數據記錄,除接收交換機的完整記錄外,在每個記錄后添加時間秒,時間秒與計費無關 (數據記錄中含有計費脈沖數),只是由于記錄中時間只有小時和分鐘,為區別一分鐘內的連續通話記錄而添加的。掉電中斷服務子程序在掉電時觸發,用于保護讀、寫地址和報警地址,確保數據安全,定時器中斷服務子程序則通過定時器產生秒計數。
基于80C320單片機設計的大容量數據存儲系統,存儲容量達到16Mb。如果要擴展存儲容量,只需通過可編程器件進行地址擴展并增加存儲器即可。通過實際使用表明,該系統可穩定、可靠地完成數據的采集和存儲,而且操作方便,擴展性強,具有一定的工程應用價值和參考價值。
[1]張宏,李景飛.基于80C320單片機雙串口同時通訊的實現 [J].科技資訊,2008,(15):8.
[2]鄧必紅,余臻,王威.基于80C320的通訊控制器的實現[J].電腦知識與技術,2006,(10):44,88.
[3]祁文哲,吳慶立,王安民.智能振動時效控制系統的設計與應用 [J].機械設計與制造,2008(7):112~114.
[4]衛曉娟,蔣兆遠.基于80C320型微控制器的系統設計和應用 [J].電子元器件應用,2005,7(1):44~46.
[5]熊俊俏,劉益成.基于∑-△D/A技術的信號發生器的設計及E-PLD的應用 [J].測控技術,2002,21(10):64~66.
[6]甘海慧,熊俊俏.大容量數據采集與數據庫管理系統設計 [J].測控技術,2005,24(8):16~17,26.