《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM智能家居控制器設計與實現
基于ARM智能家居控制器設計與實現
摘要: 本文通過采用ARM構成智能家居控制器來實現這個目標。智能家居控制器使用S3C2410、SIM100-E等元件來組成硬件平臺,再將Linux系統移植到硬件平臺上,然后設計好相應的驅動程序和應用程序,最后將軟件下載到硬件平臺來對家電進行本地和遠程控制。
Abstract:
Key words :

  如何將家庭里相對獨立的設備連接成一個系統,從而方便進行本地和遠程控制?本文通過采用ARM構成智能家居控制器來實現這個目標。智能家居控制器使用S3C2410、SIM100-E等元件來組成硬件平臺,再將Linux系統移植到硬件平臺上,然后設計好相應的驅動程序和應用程序,最后將軟件下載到硬件平臺來對家電進行本地和遠程控制。

  隨著數字化家用電器的飛速發展,如何對家庭中相對獨立的家用電器進行智能化管理和操作?這是人們非常關心的一個問題。智能家居控制器能夠將許多相對獨立的家用電器構成一個統一的系統,從而方便對家用電器進行本地操作,也可通過互聯網或GPRS系統對家用電器實現遠程控制等等。本文主要討論智能家居控制的設計和實現。

  1 智能家居控制器的硬件設計

  在設計智能家居控制器時,考慮到系統的穩定性和擴展性,因此將控制器硬件設計成核心板和控制板2部分。核心板主要用來構成一臺嵌入式計算機系統,控制板主要是一些外圍接口。系統硬件如圖1所示。

圖1 智能家居硬件結構圖

  核心板采用三星公司生產的S3C2410微處理器。ROM采用SAMSUNG K9F1208芯片構成64M

 

NAND FLASH,將FLASH芯片連接到系統的nGCS0,所以它的起始地址為:0x00000000。RAM采用2片HY57V561620AT-H構成64M ,將它連接到系統nGCS6,所以它的起始地址為:0x03000000。為了讓系統從NAND FLASH啟動,要將S3C2410的OM0和OM1引腳都接地。最后將S3C2410處理器的串口控制信號、USB主機控制信號、LCD控制信號、觸摸屏信號、數據總線、地址總線、控制總線、外部中斷等信號全部連接到核心板上的200芯插座上。

  GPRS模塊采用SIMCOM公司生產的SIM100-E芯片。通過第三個串口信號線TXD2和RXD2和處理器相連接。

  LCD直接由CPU來控制,不過要增加驅動電路。

  觸摸屏采用4線電阻式,直接將它和CPU的nYPON、YMON、nXPON、XMON相連。

  傳感器接口的輸出信號連接到CPU的EINT9外部中斷引腳上,當傳感器接收到某個信號時,就可以通過外部中斷引腳向CPU申請服務。

  家電控制接口的輸入控制信號連接到CPU的GPIO端口,當要對某個家電進行控制時,只需向指定的端口寫入0或1,然后再由家電控制接口發遙控信號去控制相應的家電。

  2  智能家居控制器操作系統的移植及裁剪

  考慮到成本,以及系統對實時性的要求不高等因素,所以決定選用Linux操作系統。目前發行的Linux操作系統都能支持ARM機的體系結構,所以只要根據平臺的具體結構進行移植。移植主要包括建立交叉編譯環境、修改內核源碼、內核裁剪和內核編譯4等個環節。

  2.1 建立交叉編譯環境

  交叉編譯是指利用運行在某臺計算機上的編譯器編譯某個源程序生成在另一種結構計算機上運行的目標代碼的過程。編譯器的生成依賴于相應的函數庫,而這些函數庫又得依靠編譯器來編譯。建立交叉編譯環境就是將ARM使用的編譯器(如:arm-linux-gcc)和函數庫(如:glibc)安裝到指定目錄,并使用configure配置好Makefile文件。

  2.2 修改內核源代碼

  修改內核源代碼主要包括啟動代碼的修改、內核的鏈接及裝入、參數傳遞和內核引導幾個部分。Linux內核分為體系結構相關部分和體系結構無關部分。在Linux啟動的第一階段,內核與體系結構相關部分首先執行,它會完成硬件寄存器設置,內存映射等初始化工作。

  然后把控制權轉給內核中與系統體系結構無關的部分。在移植工作中要修改的代碼主要集中在與體系結構相關的部分。ARM芯片的體系結構在arch/arm目錄下。首先根據芯片手冊修改boot/init.S文件中的:片選組基地址寄存器、DRAM存儲配置寄存器、DRAM片選寄存器、中斷屏蔽寄存器等。然后修改內核的鏈接及裝入ELF。最后將系統中可用頁面的數目、文件系統大小等信息以參數形式從啟動代碼傳給內核,完成設置陷阱,初始化中斷,初始化計時器,初始化控制臺等一系列操作而使內核正常啟動。

  2.3 內核裁剪和編譯

  內核裁剪是根據控制系統的要求將不需要的模塊從內核中裁剪了,Linux內核的裁剪有好幾個版本,可以使用命令make menuconfig對系統進行裁剪。

  內核裁剪之后,最后要進行交叉編譯生成內核映象文件zImage。具體命令如下:

  make clean   //清理編譯環境
       make dep    //編譯依賴文件
       make zImage  //編譯內核

 

  3 驅動程序的設計

  智能家居控制器要多個設備驅動程序,有的驅動程序可以采用標準的驅動程序,有的要專門設計。芯片SIM100-E是通過第三個串口與S3C2410相連的,所以可以直接使用標準的串口驅動程序。傳感器接口和家電控制接口要設計專用的驅動程序??刂破鞯奶幚砥魍ㄟ^外部中斷來檢測傳感器,通過GPIO端口來控制家電,雖然它們的工作原理有所不同,但驅動程序設計的方法沒有很大差別,因為在嵌入式Linux系統中設備驅動程序有一個標準的框架,設計驅動程序的大部分工作就是根據硬件結構來“填寫”框架中的函數。主要的函數包括open()、read()、write()、ioctl()、release()、module_init()和module_exit()等等。

  下面以傳感器接口驅動程序設計為例,簡介驅動程序的“填寫”過程。

  3.1 設備初始化模塊和退出模塊

  設備初始化模塊的主要功能是:設置和申請中斷、向內核注冊設備等。設備退出模塊的主要功能是:釋放設備所占

 

用的資源。具體函數如下:

 

  int __init s3c2410_int_init(void)
{┅
       set_external_irq(IRQ_EINT9, ┅);//設置外部中斷
       request_irq(IRQ_EINT9,demo_int_handler, ┅);//申請外部中斷
       ret = register_chrdev(0, DEVICE_NAME, &s3c2410_exio_fops); //申請主設備號
       devfs_int_demo= devfs_register(NULL, "int_demo", ┅); //注冊設備文件
┅}

  void __exit s3c2410_int_exit(void)
{┅
       free_irq(IRQ_EINT9,NULL);//釋放中斷
       devfs_unregister(devfs_int_demo); //刪除設備文件
       unregister_chrdev(exioMajor, DEVICE_NAME); //釋放主設備號
┅}

  3.2 打開模塊和釋放模塊

  打開模塊的主要功能是:初始化一些變量。具體實現函數如下:

  static int s3c2410_int_open(struct inode *inode, struct file *filp)
{     init_MUTEX(&demodev.lock);//初始化自旋鎖
       init_waitqueue_head(&(demodev.wait));初始化隊列
       MOD_INC_USE_COUNT;//使用計數加1
┅}
static int s3c2410_int_release(struct inode *inode, struct file *filp)
{     MOD_DEC_USE_COUNT; //使用計數減1
┅}

  3.3 讀數據模塊

  讀數據模塊的主要功能是:使線程休眼,然后等待中斷來喚醒。具體實現函數如下:

  static int s3c2410_int_read(struct file *filp,char *buffer,size_t count,loff_t *ppos)
{┅
       copy_to_user(buffer,(char *)&bak,sizeof(bak)); //內核態到用戶態
       interruptible_sleep_on(&demodev.wait);//進入休眠
┅}

  3.4 中斷處理模塊

  中斷處理模塊的主要功能是:喚醒正在休眼的線程。具體實現函數如下:

  static void s3c2410_int_handler(int irq, void *dev_id, struct pt_regs *reg)
{wake_up(&demodev.wait);//中斷喚醒
┅}

  驅動程序設計完成后,再編寫Makefile文件,通過make命令生成目標文件,最后利用insmod命令向內核加載驅動程序。

  4  應用程序的設計

  為了提高應用程序的運行速度,以及程序運行的穩定性,所以將應用程序設計成多線程結構,如圖2所示。應用程序由7個線程和一個共享數據結構組成。

如圖2 應用程序結構框圖

  共享數據主要用于存放家電開啟和關閉時間,發送短信的電話號和短信內容等信息。共享數據是通過2個設置線程來修改的。家電控制線程主要是根據控制數據、檢測短信線程的內容和操作線程的內容來進行操作。發送短信線程主要是根據控制數據、檢測傳感器線程的內容和操作線程的內容來進行操作。應用程序的具體內容如下。

  #include  &nb

 

sp; //線程庫頭文件

int main()
{┅
  pthread_creat(&th_a,NULL,send_msg,0); //創建發送短信線程
pthread_creat(&th_b,NULL,control_driver,0); //創建家電控制線程

  pthread_join(th_b,&retval); //等待家電控制線程結束
pthread_join(th_a,&retval); //等待發送短信線程結束
┅}
/*發送短信線程*/
int send_msg()
{┅
       tty_init();   //初始化串口
       gprs_init();  //初始化GPRS模塊
       tty_writecmd(“at”,strlen(“at”));  //發送AT命令
       tty_writecmd(“at+cmgf=1”,strlen(“at+cmgf=1”));//發送修改字符集命令
       tty_write(“at+cmgs=”,strlen(“at+cmgs=”));     //發送短信命令
       tty_writecmd(msg.send_tel,strlen(msg.send_tel)); //發送電話號碼
tty_writecmd(msg.send_text,strlen(msg.send_text)); //發送短信內容
      tty_end(); 

      return 0;
}

 

  其它線程的設計方法有很多相似之處。應用程序設計完成之后,再經過交叉編譯就可生成目標文件。

  5 結束語

  將移植好的系統、驅動程序和應用程序下載到智能家居控制器上。經過測試,系統具有操作方便、可靠性高和抗干擾能力強等優點。本文的創新點是:通過智能家居控制器將家電、傳感器、手機等許多獨立的設備連接成為一個系統,從而方便本地和遠程控制。

  參考文獻:

  [1] 朱華生,胡凱利.基于Linux系統的HHARM9電機驅動程序設計[J].南昌工程學院學報.2005,4:51-53.

  [2] 嚴厲平.嵌入式智能家庭網關的研究與設計[J].微計算機信息.2005,2:14-16.

  [3] 朱華生,劉文軍.基于Linux下實時數據備份的研究[J].南昌水專學報.2004,4:57-58.

  [4] 朱華生,韓宇貞.計算機故障分析儀的設計[J].南昌水專學報.2003,2:34-36

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲综合好骚| 亚洲欧美日韩人成在线播放| 久久精品一区二区三区不卡牛牛| 午夜精品久久久久久久白皮肤| 欧美国产三级| 一区二区三区在线观看欧美| 含羞草久久爱69一区| 欧美黄色一区二区| 国产精品美女在线| 欧美日韩精品在线视频| 女仆av观看一区| 性娇小13――14欧美| 久久久中精品2020中文| 欧美一区激情| 欧美精品高清视频| 欧美成年人网| 国一区二区在线观看| 日韩小视频在线观看专区| 午夜免费日韩视频| 久久亚洲国产成人| 国产精品www994| 国产婷婷成人久久av免费高清| 亚洲三级视频| 你懂的视频一区二区| 欧美三级视频在线观看| 极品少妇一区二区三区| 国产日韩欧美在线看| 老色鬼久久亚洲一区二区| 欧美了一区在线观看| 亚洲午夜精品| 国产日韩免费| 黑人巨大精品欧美黑白配亚洲| 国产夜色精品一区二区av| 在线精品观看| 99精品欧美一区二区蜜桃免费| 西西裸体人体做爰大胆久久久| 在线日韩av永久免费观看| 亚洲国产一区二区三区在线播| 一区二区三区视频在线播放| 黄色日韩网站视频| 在线电影国产精品| 一本一道久久综合狠狠老精东影业| 亚洲国产精品久久91精品| 欧美在线观看你懂的| 六月丁香综合| 国产日韩在线视频| 国内视频精品| 国产精品99免视看9| 欧美 日韩 国产在线| 一本久久青青| 亚洲大片在线| 国产一区二区三区日韩| 欧美一区二粉嫩精品国产一线天| 久久久久网址| 国产午夜精品久久久久久久| 日韩午夜在线观看视频| 欧美高清在线观看| 久久综合色综合88| 欧美激情精品久久久久| 欧美日韩在线亚洲一区蜜芽| 亚洲欧洲综合另类在线| 免费人成精品欧美精品| 亚洲自拍偷拍色片视频| 午夜国产精品视频免费体验区| 欧美成人按摩| 国产区在线观看成人精品| 欧美一区二区三区在线免费观看| 国产日韩欧美亚洲| aa日韩免费精品视频一| 久久免费少妇高潮久久精品99| 亚洲一区二区三区视频播放| 久久婷婷蜜乳一本欲蜜臀| 夜夜嗨av一区二区三区网站四季av| 国产精品羞羞答答| 亚洲丶国产丶欧美一区二区三区| 一区二区在线观看视频| 一区二区三区高清视频在线观看| 一色屋精品视频在线看| 久久亚洲精品欧美| 一本色道精品久久一区二区三区| 午夜精品国产更新| 国产精品久久久久久妇女6080| 国语自产精品视频在线看| 最新日韩欧美| 亚洲国产高清在线观看视频| 激情一区二区| 99视频日韩| 国产精品夜夜夜一区二区三区尤| 久久在线精品| 欧美剧在线免费观看网站| 激情视频亚洲| 久久国产乱子精品免费女| 国产欧美精品xxxx另类| 久久天堂精品| 欧美激情乱人伦| 91久久国产精品91久久性色| 亚洲国产清纯| 噜噜爱69成人精品| 国产欧美一区视频| 麻豆成人综合网| 欧美在线视频一区二区三区| 老司机精品导航| 99在线精品视频在线观看| 国产欧美一区二区精品性| 国产日韩精品视频一区二区三区| 欧美日韩国产在线一区| 欧美一区二区三区啪啪| 欧美 日韩 国产一区二区在线视频| 国产乱码精品一区二区三区忘忧草| 国产精品美女久久福利网站| 欧美韩日视频| 午夜久久影院| 在线观看欧美日本| 国产精品超碰97尤物18| 蜜臀av在线播放一区二区三区| 欧美日韩精品伦理作品在线免费观看| 亚洲电影免费观看高清完整版| 在线精品视频一区二区三四| 欧美日韩高清在线一区| 久久国产精品99国产精| 国产精品mv在线观看| 午夜精品久久一牛影视| 亚洲欧美日韩精品综合在线观看| 羞羞视频在线观看欧美| 在线亚洲欧美视频| 国产精品乱码妇女bbbb| 免费不卡亚洲欧美| 美女国内精品自产拍在线播放| 免费不卡在线视频| 亚洲制服丝袜在线| 欧美成年人网站| 午夜精品美女自拍福到在线| 亚洲一区二区高清| 亚洲高清中文字幕| 美国成人毛片| 国产精品日韩一区| 久久福利视频导航| 欧美午夜理伦三级在线观看| 中文久久精品| 久久狠狠婷婷| 欧美一区二区三区另类| 欧美日韩国语| 美女视频黄a大片欧美| 在线观看视频日韩| 一区二区三区在线视频播放| 国产亚洲女人久久久久毛片| 欧美在线视频不卡| 国语对白精品一区二区| 加勒比av一区二区| 欧美日韩第一区| 欧美人成免费网站| 久久综合九色99| 欧美在线视频网站| 久久这里有精品视频| 国产精品视频精品视频| 激情久久久久久久久久久久久久久久| 亚洲国产高清一区二区三区| 久久国产精品99精品国产| 欧美a级大片| 一区二区欧美日韩视频| 国产自产在线视频一区| 欧美精品九九99久久| 亚洲国产精品成人综合| 亚洲福利小视频| 在线成人小视频| 亚洲激精日韩激精欧美精品| 欧美日本韩国在线| 亚洲视频一二| 亚洲伦理在线| 欧美另类极品videosbest最新版本| 久久久久久久综合狠狠综合| 亚洲国产清纯| 一区二区三区精品国产| 日韩视频中文字幕| 国产精自产拍久久久久久| 国产一区二区精品久久91| 欧美+日本+国产+在线a∨观看| 欧美三区免费完整视频在线观看| 欧美午夜精品久久久久免费视| 亚洲精品中文字幕有码专区| 国产欧美精品日韩精品| 欧美精品一区二区三| 欧美日韩成人激情| 日韩视频国产视频| 一本色道久久综合亚洲精品不卡| 欧美在线观看网址综合| 欧美日韩天天操| 欧美日韩性生活视频| 国产精品久久久久免费a∨大胸| 狠狠综合久久av一区二区小说| 欧美不卡福利| 国产一区999| 一区二区三区|亚洲午夜| 久久影视精品| 国产精品日韩欧美综合| 最新亚洲激情| 国产美女精品视频免费观看| 久久嫩草精品久久久精品| 激情六月综合| 亚洲性图久久| 久久精品国产免费看久久精品| 久久国产精品毛片| 欧美精品一区二区三区高清aⅴ| 亚洲黄色av| 亚洲国产美女久久久久| 免费看黄裸体一级大秀欧美| 亚洲少妇诱惑| 欧美专区福利在线| 欧美人妖在线观看| 国产精品一区久久久久| 欧美激情综合| 欧美天堂在线观看| 久久久久国产一区二区三区| 国产一区激情| 国产一区二区三区在线观看视频| 欧美性做爰猛烈叫床潮| 国产在线麻豆精品观看| 久久精品日产第一区二区三区| 亚洲国产精品尤物yw在线观看| 亚洲欧洲日本一区二区三区| 韩国成人理伦片免费播放| 亚洲欧美日本伦理| 国产一区二区成人久久免费影院| 国产精品成人观看视频免费| 久色婷婷小香蕉久久| 在线观看国产日韩| 久久婷婷国产综合国色天香| 亚洲激情电影在线| 久久久人成影片一区二区三区观看| 国产精品久久国产精麻豆99网站| 国产精品福利在线观看| 一区视频在线看| 欧美午夜在线一二页| 久久免费午夜影院| 欧美一区网站| 国产尤物精品| 国产毛片一区二区| 国产精品乱人伦一区二区| 国产免费观看久久| 国产一区二区成人久久免费影院| 欧美二区在线观看| 久久av一区二区三区漫画| 午夜国产精品视频免费体验区| 欧美不卡视频一区发布| 亚洲视频福利| 欧美午夜女人视频在线| 韩国v欧美v日本v亚洲v| 欧美激情欧美激情在线五月| 欧美午夜精品久久久久免费视| 亚洲精品一区二区三区蜜桃久| 欧美日本网站| 国产女人18毛片水18精品| 亚洲第一中文字幕在线观看| 国产综合久久| 国产精品国产三级国产普通话99| 国产亚洲欧美在线| 亚洲一区二区精品| 亚洲综合欧美日韩| 欧美日韩国产成人在线观看| 国产午夜精品久久久久久久| 国产精品劲爆视频| 亚洲另类黄色| 亚洲国产一区二区视频| 国产精品99一区| 国产亚洲综合精品| 亚洲欧美日韩一区二区在线| 日韩亚洲精品在线| 国产精品久久久久免费a∨| 久久久久久午夜| 欧美性做爰猛烈叫床潮| 欧美一级成年大片在线观看| 国产精品久久久久久模特| 欧美精品在线观看| 99精品国产热久久91蜜凸| 亚洲精品免费网站| 久久精品亚洲乱码伦伦中文| 一本综合久久| 黄色日韩网站视频| 伊人久久大香线蕉av超碰演员| 亚洲无线一线二线三线区别av| 欧美人与性动交cc0o| 亚洲伦理精品| 欧美日韩国产免费| 麻豆av一区二区三区久久| 欧美天天影院| 日韩一二三在线视频播| 欧美激情精品久久久久久变态| 国产精品美女久久久久久2018| 蜜桃精品一区二区三区| 亚洲免费在线观看视频| 噜噜噜噜噜久久久久久91| 最新中文字幕一区二区三区| 国产精品推荐精品| 国产精品99久久久久久宅男| 免费亚洲一区二区| 日韩亚洲一区二区| 日韩视频免费在线观看| 久久aⅴ国产紧身牛仔裤| 欧美黄色一级视频| 99国产精品久久久久久久成人热| 亚洲美女精品一区| 海角社区69精品视频| 国产精品久久久久久久7电影| 亚洲国产经典视频| 国产精品一区二区久激情瑜伽| 亚洲精品自在在线观看| 欧美成人午夜影院| 亚洲欧美在线aaa| 欧美日韩中文字幕综合视频| 欧美日韩亚洲一区三区| 国产亚洲欧美另类一区二区三区| 亚洲欧美国产日韩天堂区| 在线电影国产精品| 欧美激情第1页| 一区二区三区四区蜜桃| 99精品视频一区| 国产欧美日韩视频在线观看| 亚洲国内欧美| 欧美三级精品| 美女诱惑一区| 亚洲国产天堂久久综合| 久久久久久婷| 欧美在线91| 欧美日韩国产在线播放网站| 欧美天天在线| 国产亚洲午夜| 国产在线不卡精品| 亚洲国产欧美一区二区三区丁香婷|