嵌入式系統在曙光4000A大規模機群監控系統中的應用
對于采集卡主芯片的選擇,由于需要支持TCP/IP網(wǎng)絡(luò ),需要支持IIC接口,同時(shí)還可以支持內存控制以及Flash控制器,因此選擇了三星公司的ARM芯片S3C4510B,該芯片采用ARM7TDI內核,32位RISC架構。對于嵌入式操作系統的選擇,uClinux具有免費、開(kāi)源、可裁減性好、對TCP/IP網(wǎng)絡(luò )協(xié)議支持的較好并且穩定性高等優(yōu)點(diǎn),因此選擇uClinux作為嵌入式操作系統。同時(shí)由于IIC總線(xiàn)技術(shù)有連接簡(jiǎn)單、數據傳輸速率高、高可靠性等優(yōu)點(diǎn),所以采集卡的主芯片和采集單片機使用IIC總線(xiàn)相連。
2.2 采集卡(多路器)的功能
采集卡的主要作用,一方面是從與每組節點(diǎn)機相連的采集單片機中通過(guò)IIC總線(xiàn)讀取節點(diǎn)機的信息,另一方面監聽(tīng)自身的事先約定的端口,當有連接請求并收到發(fā)送數據的命令后送出從采集卡中讀取的數據。硬件上已經(jīng)有了IIC和網(wǎng)絡(luò )接口,軟件方面,可以從網(wǎng)上資源中獲取S3C4510B芯片的IIC控制器和網(wǎng)絡(luò )驅動(dòng)程序,然后集成到uClinux嵌入式操作系統中。此外還需要一段采集程序實(shí)現系統的主要功能。
采集程序根據系統需要的功能,分為兩個(gè)部分,一部分定時(shí)從IIC總線(xiàn)讀取數據,另一部分監聽(tīng)某個(gè)約定端口、收取命令并發(fā)送數據。這兩個(gè)部分分別由兩個(gè)線(xiàn)程來(lái)執行。兩個(gè)線(xiàn)程共享同一塊數據緩沖區。線(xiàn)程一通過(guò)IIC總線(xiàn)讀取采集卡中的數據,寫(xiě)入緩沖區中,線(xiàn)程二一方面讀取緩沖區中的數據發(fā)送,另一方面在發(fā)送完畢后,把已經(jīng)發(fā)送了的緩沖區填寫(xiě)為無(wú)效數據。由于數據緩沖區屬于臨界區域,這兩個(gè)線(xiàn)程在使用緩沖區的時(shí)候要嚴格互斥。
程序的主體結構如下:
read_iic(){ //線(xiàn)程一運行的函數
打開(kāi)iic設備;
while(1) {
讀取iic設備的數據;
寫(xiě)入全局緩沖區中;
休眠一定的時(shí)間;
?。?p> ?。?p> send_data() { //線(xiàn)程二運行的函數
綁定本地端口;
監聽(tīng)本地端口;
while(1) {
收到命令;
發(fā)送全局緩沖區中的數據;
填寫(xiě)無(wú)效數據;
?。?p> ?。?p> main() {
初始化全局緩沖區;
創(chuàng )建線(xiàn)程一;
創(chuàng )建線(xiàn)程二;
?。?p> 2.3 運行情況以及發(fā)展方向
在實(shí)際運行1周后,曙光4000A大規模集群監控系統運行狀況良好,其中采集卡功能良好,在規定的延遲內數據傳輸流暢,沒(méi)有出現數據漏傳、丟失等現象,說(shuō)明監控系統中的嵌入式系統運行很穩定,發(fā)揮了預期的作用。
在將來(lái)的監控系統升級工作中,可以考慮在這個(gè)采集卡中加入嵌入式數據庫技術(shù),把收到的數據存儲起來(lái),并且和uClinux提供的Web服務(wù)結合,在Web服務(wù)中顯示監控系統的數據,這樣就可以在任何一臺機器上以瀏覽網(wǎng)頁(yè)的形式監控整個(gè)集群,從而節省了監控節點(diǎn)的開(kāi)銷(xiāo),提高了采集卡的利用率。
三:結束語(yǔ)
嵌入式系統體積小、靈活性高,已經(jīng)被應用到各行各業(yè),例如汽車(chē)、家電、航空、精密儀器等等。本文介紹的嵌入式系統在曙光4000A大規模機群監控系統中的應用,結合了ARM技術(shù)、IIC總線(xiàn)技術(shù),采用了uClinux嵌入式操作系統,體積小、可擴展性好、成本低,數據流向清晰明確,現在已經(jīng)作為配套產(chǎn)品提供給用戶(hù)。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論