王平 葉福蘭 陳章斌
摘 要:隨著科學技術的不斷發(fā)展,嵌入式遠程控制系統(tǒng)被廣泛應用于各個領域。要遠程就必須有通信,要控制就必須有執(zhí)行,成系統(tǒng)就要內部通信,解決的方案有多種且各有特點。本文以智能家居控制系統(tǒng)為例,從硬件上詳細地闡述實現通信模塊、執(zhí)行模塊其功能以及內部通信總線的幾種方案。最后重點針對使用數據庫時如何用C語言編寫DBF文件的難題進行軟件技術上的解決描述。
關鍵詞:嵌入式;智能家居;C語言編寫DBF
中圖分類號:TP273 文獻標識碼:A
Abstract:With the continuous development of science,the embedded remote control system is widely used in various fields.Must have the communication,must have the control to carry on,the system must have the internal communication,the solution has many and each has the characteristic.In this paper,a smart home control system for an example, from the hardware details of the communication module,the implementation of its functions and internal communication bus.Finally,to use the database how to use C language problem of DBF file description of software technology to solve.
Keywords:embedded;smart home;C language DBF
1 引言(Introduction)
信息化的21世紀,各種電信和互聯網新技術推動了人類文明的巨大進步。在此基礎開發(fā)出遠程控制嵌入式系統(tǒng)的各種應用極大地提高了工作效率和生活便利。智能家居就是嵌入式遠程控制的一個具體應用[1]。
多年來,筆者在智能家居方向做了很多開發(fā)應用。本文就如何在嵌入式系統(tǒng)上利用現成的電話網和互聯網來實現遠程控制進行了多種成功方案的硬件描述,這些方案在使用上各有特點、實現的難易程度不同。完成遠程通信后,在具體內部控制執(zhí)行上,由于采用總線結構、自學習式紅外無線的方案,可以很好地滿足各種現場環(huán)境和擴展的需要。
而這些眾多的智能終端又可以組成更大的系統(tǒng),此時就需要用到數據庫,所以如何用函數豐富,底層的控制靈活的C語言寫出數據庫的DBF文件就要分析DBF的頭部結構,通過研究測試修改,總結出可以直接使用的代碼。
2 智能家居(Smart home)
“智能家居”系統(tǒng)是利用先進的計算機技術、通訊技術和嵌入式技術,將各種家用設備通過通信網絡連接成系統(tǒng)。各種設備不但可以相互通訊、根據不同的狀態(tài)互動運行,還可以向外提供遠程控制能力,幫助家庭與外部保持信息交流暢通,從而給用戶帶來最大限度的高效、便利、舒適與安全。如圖1所示,本文就以該系統(tǒng)為例來闡述遠程控制的方案與實現。
3 遠程通信(Remote communication)
3.1 可選方案
公用電話通信網特點[2]是采用電路交換方式、信道獨占、信道利用率低、傳輸效率高、時延??;具有通信快捷、語音明了、終端普及的優(yōu)點。計算機網絡特點是采用分組交換方式、信道共享、信道利用率高、傳輸效率低、時延大;具有費用低廉、界面直觀、顯示豐富的優(yōu)點。二者的不同點正好可以互補,相同點是通信區(qū)域均已覆蓋全球。
3.2 電話模塊
電話模塊具有數據處理和存儲、數據通訊、語音提示、自動摘掛機、自動撥號等功能。具體采用8051單片機[3]作為中央控制單元,實現了語音提示及安全認證機制。主要有振鈴檢測、模擬摘掛機、雙音頻信號編解碼、信號音檢測、語音提示、EEPROM數據存儲等子模塊組成。
3.3 網絡模塊
實現網絡通信功能的可選方案和特點有:控制芯片+網卡芯片的方案,其特點是代碼編寫難但網絡功能靈活;控制芯片+
硬件協(xié)議棧+網卡芯片的方案,其特點是控制簡單但網絡功能固定,如圖2所示,W3100A芯片是一硬件協(xié)議棧的集成電路,芯片中安裝相對簡單的TCP/IP協(xié)議[4],實現了軟件硬化。
4 控制執(zhí)行(Control execution)
外圍接口模塊在智能居家系統(tǒng)[5]負責的基本控制功能應包括:照明控制、家居安防、電器控制、環(huán)境控制等。
如圖3所示,內部通信一般采用具有可擴展性和工程安裝簡單特點的總線技術,各個控制分支視實際情況靈活采用有線或無線技術。
5 C語言與數據庫(C language and database)
如將這些智能終端再組成大系統(tǒng)時,就可能用到數據庫,需要用C語言的格式讀寫文件。dBASE和FoxBASE都是帶結構的文件,數據庫文件由文件結構和數據兩部分組成。文件結構采用的是二進制存儲方式而數據部分則是以ASCII方式存儲。庫文件結構部分描述庫文件的概況:建立或修改日期、數據記錄個數、庫文件結構長度、記錄長度等。如下所示,即用C語言編寫DBF文件就成了關鍵,經過研究調試,形成如下程序可以方便地調用。
#include
#include
#include
#include
fscanf(fpout,”%c%c”,&a,&b);
reccount=a+b*0x100;
reclen=sizeof(struct rec);
for(I=0;I{
fseek(fpout,filehead+I*reclen,0);
if(fread(&record,sizeof(struct rec),1,fpout)==NULL){
printf(“Cant read f1.dbf\n”);
} //讀入整條記錄
strcpy(za,record.za);
strcpy(zb,record.zb);
strcpy(zc,record.zc);
printf(“za=%s,”,za);
printf(“zb=%s,”,zb);
printf(“zc=%s,”,zc); //顯示
}
fclose(fpout); //關閉文件
}
void main() //主函數
{
write(); //調用寫函數
read(); //調用讀函數
}
注意:
(a)數據庫的字段長度與定義的庫文件數據部分對應,但字段類型可以不同。
(b)由于字符串結束符的緣故在調用“寫函數”輸入時只要不超過定義的位數即可,但調用“讀函數”時則會出錯,所以只要輸入時小于定義的位數就能讀寫正常。
(c)此接口程序時以記錄為單位進行讀寫的。
(d)因“寫函數”中記錄末尾標記的引入和新記錄數的重寫,記錄數會隨之改變。
(e)可根據需要修改程序后再放到頭文件中,僅在主函數中調用即可。
6 結論(Conclusion)
智能家居系統(tǒng)是嵌入式遠程控制系統(tǒng)的一個應用例子,由于控制對象多,單個智能控制系統(tǒng)無法完成控制任務,需要構成一個由多種設備、多種平臺的綜合系統(tǒng)。本方案內部采用總線協(xié)議,具有組網方便、性能穩(wěn)定、成本低廉的特點;外部采用電話與TCP/IP協(xié)議[6],具有遠程控制能力、擴展性強的特點。嵌入式與非嵌入式的連接再加載數據庫又能組成更大的智能系統(tǒng)。
參考文獻(References)
[1] 王平,等.家用網絡化智控系統(tǒng)的研究開發(fā)[J].計算機應用研究,2004,21:221-222.
[2] 王平,等.家居網絡智控系統(tǒng)中PSTN遠程通信模塊的設計[J].福建師大學報,2007,23(4):61-63.
[3] 張培仁.基于C語言編程 MCS-51單片機原理與應用[M].北京:清華大學出版社,2003.
[4] W.Richard Stevens.陸雪瑩,譯.TCP/IP詳解,卷2:實現[M].北京:機械工業(yè)出版社,2000.
[5] 夏濤,陶洋.基于四大模塊的智能家居的研究與設計[J].工程地質計算機應用,2007,48(4):23-26.
[6] 鄭楠,呂幼新.Winsock技術在校園消防遠程監(jiān)控系統(tǒng)中的應用[J].信息與電子工程,2007,5(3):203-205.
作者簡介:
王 平(1956-),男,本科,教授.研究領域:嵌入式智能終端,通信技術.
葉福蘭(1981-),女,碩士,副教授.研究領域:數據挖掘.
陳章斌(1979-),女,碩士,講師.研究領域:網絡通信.