精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于uClinux和S3C4510B微處理器實現家庭網絡中央控制器的設計

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:黃布毅;童志文;陳 ? 2021-06-19 17:05 ? 次閱讀

作者:黃布毅;童志文;陳曉雷

隨著信息社會的發展,網絡和信息家電越來越地出現在人們的生活中。人們普通要求將家庭內的所有家用電器與Internet連接起來,實現主人在遠方用計算機或電話通過Internet對象家庭電設施進行監控。家用電器制造商可以通過網絡對其生產的設備進行售后跟蹤服務;家用電器是故障時能自動按預設的郵件地址來發送電子郵件進行報警。這就需要有一個“家庭網絡中央控制器”。它對外與Internet連接,對內通過家庭內部無線局域網將所有家用電器連接成一體,從而確保信息家電安全地接入Internet。當前,多數研究單位推出的家庭網絡智能控制器,均以PC或準PC機作為硬件平臺,由于價位高而均未被市場容納。

嵌入式Internet是近幾年發展起來的一項新興技術。以32位ARM嵌入式微處理器為硬件平臺,通過移植嵌入式操作系統uClinux內核,開發相應的硬件驅動、微型GUI和上層應用軟件,最終實現產品化的嵌入式家庭網絡中央控制器。該系統具有體積小、功耗低、價格便宜的特點。

1 系統的硬件組成

本系統以高性能、低價格的S3C4510B為主CPU。它是Samsung公司推出的基于ARM7TDMI核,精簡指令系統的32位高速微處理器。工作電壓為3.3V,內核ARM7TDMI的工作電壓為2.5V,大大降低了芯片的功耗。S3C4510B片上資源:一個總線仲裁器可以根據總線仲裁優先級在片上功能模塊和外圍設備之間進行系統總線控制權分配;8KB指令、數據復用Cache,每128bit為1頁,并可全部或部分設置為SRAM;1個主I2C總線控制器,可作為主發送器或主接收器,能連接多個從設備;2個通用DMA;18個通用I/O口; 2路4線UART口,其中一個支持IrDA 1.0,可用于紅外通信;6組ROM/SRAM/Flash用于管理外部存儲器。另外,可擴展4組動態存儲器和4 BANK擴展I/O設備;2通道帶有DMA傳送方式的HDLC口;1個10M/100M自適應以太網控制器。

圖1為家庭網關的硬件框圖,以S3C4510B為基本核心系統,外圍擴展一系列功能模塊。有4×4鍵盤及以屏幕LCD顯示構成良好的人機界面,用于手動本地參數查詢和設定。家庭網關基本系統以SPI接口與PTR3000無線收發模塊相連,同時家庭內部家電控制器也通過SPI接口擴展PTR3000無線模塊。這樣,家庭網關的無線模塊以輪詢的方式與家庭內各家電控制器上無線模塊進行通信,從而組成家庭內部無線子網。家庭網關基本系統只需對SPI口進行操作即可實現與家電通信。實現了家電以家庭網關為中介與Internet在物理層互聯的三個通路:PC通過LAN經由Internet連接到基本系統的以太網口、PC通過Modem經由公司電話網與嵌入式Modem相連再到UART1、電話機經過公用電話網經語音卡連到UART1。

2 uClinux嵌入式操作系統

操作系統選用uClinux。它是一個完全符合GNU(GNU’s Not Unix,自由軟件基金會)/GPL(General Pulic License,通用公共許可證)公約的完全開放代碼項目,是標準Linux的一個分支,現在由Lineo公司支持維護。它專門針對沒有MMU的CPU,并且專為嵌入式系統做了許多小型化的工作。

UClinux經過對標準Linux內核的改動,形成了一個高度優化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,但uClinux仍然保留了Linux的大多數的優點,穩定、良好的移植性、優秀的網絡功能、完備的對各種文件系統的支持以及標準豐富的API。它的主要特片如下:

①在linux-2.4.x/driver/char/Makefile添加1行:obj_$(CONFIG_SPI)+=SPI.0。在24行obj-y+=mem.o tty_io.o后加PI.o。

②在linux-2.4.x/driver/char/Config.in,添加1行:bool‘SPI’CONFIG_SPI便于在make me nuconfig時選擇。

③在linux-2.4.x/driver/char/mem.c在文件頭部添加:#ifdef CONFIG_SPI /*編譯時選擇該項就執行SPI的初始化函數*/

extern void SPI_init(void);

#endif

在chr_dev_init()函數添加:#ifdef CONFIT_SPI

SPI_init();

#endif

④修改vendor/Samsung/4510b/Makefile,建立起設備節點。

在12~35行間,DEVICE部分添加內容SPI,c,29,0。SPI是設備名,c代表字符設備,29是SPI的主設備號,0是SPI的次設備號。⑤make menuconfig時選中SPI編譯,然后直載。

啟動后,會看到/proc/devinces中字符設備多了一項SPI 29。

S3C4510B有18個通用I/O口,其中高10位可設置為其它功能口。在該系統中,設置P8為中斷接收線,P11模擬主機輸出線MOSI,P12模擬主機時鐘SCK,P13模擬主機輸入線MISO。P8口用于接收PTR3000的發送請求信號。當P8口接收到請求信號時,系統進入中斷處理。中斷處理進程喚醒睡在睡眠隊列SPI_WAIT上的讀進程,讀進程由P12口輸出SCK信號并由P13口讀入數據。值得說明的是,SPI不帶中斷線,在此用P8口做中斷接收線是為了避免操作系統在沒有進行SPI操作時不斷向SCK線發時鐘信號。因此,MSP430F147IPM必須另外與S3C4510B連一個引腳在請求發送數據時發出中斷接收線是為了避免操作系統在沒有進行SPI操作時不斷向SCK線發時鐘信號。因此,MSP430F147IPM必須另外與S3C4510B連一個引腳在請求發送數據時發出中斷請求信號。實現過程如下:

Static wait_queue_head_wait; //休眠隊列

//讀函數

static ssize_t SPI_onlyread(struct file*file,char *buf,size_t count,loff_t *ppos)

{

interruptible_sleep_on(&SPI_wait); //讀進程睡眠等待讀中斷信號

if(count>BUFNUM)count=BUFNUM;

for(num=0;num

for(i=0;i<8;i++){

iopdata=iopdata^0x1000; //時鐘輸出

SPI_read[num]=SPI_read[num]+((iopdata&0x2000)>>(12-i)); //數據輸入

}

}

if(copy_to_user(buf,&SPI_read,count)) //數據從內核空間拷貝到用戶這間

return-EFAULT;

return count;

}

//寫函數

static ssize_t SPI_onlywrite(struct file *file,const char *buf,size_t count,loff_t *ppos)

{

if(count>BUFNUM)count=BUFNUM;

if(copy_from_user(&SPI_write,buf,count)) //數據從用戶空間拷貝到內核空間

return-EFAULT;

for(num=0;num

for(i=0;i<8;i++){

iopdata=((SPI_write[num]&0x1)<<11)+(iopdata&0xfffff7ff);

SPI_write[num]=SPI_write[num]>>1;

iopdata=iopdata^0x1000; //時鐘輸出

}

}

return count;

}

//中斷響應函數

static int SPI_irq(int irq,void *dev_id,struct pt_regs *regs)

{

intpnd=intpnd|0X1; //清中斷位

wake_up_interruptible(&SPI_wait); //喚醒睡眠隊列

return 1;

}

//字符設備驅動接口

static struct file_operations SPI_fops={

owner; THIS_MODULE,

read: SPI_onlyread,

write: SPI_onlywrite,

};

//初始化函數

int_init SPI_init(void)

register_chrdev(29,“SPI”&SPI_fops);//設備注冊函數

init_waitqueue_head(&SPI_wait);

if(!request_irq(0,SPI_irq,SA_SAMPLE_RANDOM,“SPI”NULL)){ //中斷申請

return-EFAULT;

}

iopmod=(iopmod&0xffffe7ff)=0x1800+iopmod; //設置通用I/O口模式

iopcon=(iopcon&0xffffffe0)+0xle+iopcon;//設置通用I/O模式

enable_irq(0); //開中斷

return 0;

}

module_init(SPI_init);

MODULE_LICENSE(“GPL);

EXPORT_NO_SYMBOLS;

結語

實驗證明,模擬的SPI口接收發送數據準確可靠。用戶程序可以以設備文件的形式進行訪問,與標準的SPI接口無異。該方案對于嵌入式家庭網關的研究,以及運用uClinux作為操作系統的嵌入式模擬通信接口,有一定的參考價值。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16214

    瀏覽量

    177479
  • 微處理器
    +關注

    關注

    11

    文章

    2247

    瀏覽量

    82331
  • 總線
    +關注

    關注

    10

    文章

    2869

    瀏覽量

    87995
收藏 人收藏

    評論

    相關推薦

    基于S3C4510B微處理器uClinux實現存儲系統的設計

    、FLASH、Normal DRAM和Sync.DRAM等。本文所采用的存儲包括有SDRAM和FLASH。S3C4510B(以下簡稱4510微處理器是構建在ARM核ARM7TDMI
    發表于 06-28 08:28 ?866次閱讀
    基于<b class='flag-5'>S3C4510B</b><b class='flag-5'>微處理器</b>和<b class='flag-5'>uClinux</b><b class='flag-5'>實現</b>存儲系統的設計

    μClinux在S3C4510B上的移植

    Linux是一種支持多種體系結構處理器的操作系統.有很強的移植性。描述了將UClinux移植到基于S3C4510B處理器目標板上的方法與過程。首先介紹了
    發表于 03-28 13:18

    s3c4510b中文手冊,s3c4510b用戶手冊

    s3c4510b中文手冊,s3c4510b用戶手冊:ARM(Advanced RISC Machines),既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。1991年ARM公司成立
    發表于 10-14 10:54 ?421次下載

    s3c4510b中文資料

    本書所討論的S3C4510B即為一款不帶MMU的ARM微處理器,可在其上運行uCLinux操作系統。系統的工作頻率系統的工作頻率在很大程度上決定了ARM微處理器
    發表于 10-14 11:11 ?8次下載

    基于uCLinuxS3C4510B網絡通信設計

    基于uCLinuxS3C4510B網絡通信設計
    發表于 03-28 09:49 ?17次下載

    μClinux在S3C4510B上的移植

    Linux是一種支持多種體系結構處理器的操作系統.有很強的移植性。描述了將UClinux移植到基于S3C4510B處理器目標板上的方法與過程。首先介紹了
    發表于 03-28 09:51 ?16次下載

    網絡通信處理器S3C4510B的網口驅動設計

    嵌入式處理器S3C4510B網絡控制和通信領域有著相當廣泛的應用。本文簡要描述該處理器內嵌的以太網控制
    發表于 05-15 16:24 ?18次下載

    基于uCLinuxS3C4510B網絡通信設計

    結合工程實例, 基于S3C4510B 微處理器, 構建以DM9161 為以太網物理層接口的低功耗、高速硬件電路;在嵌入式操作系統uCLinux實現
    發表于 05-16 13:29 ?16次下載

    基于uCLinuxS3C4510B網絡通信的設計與實現

    文章結合工程實例,基于S3C4510B 微處理器構建了以DM9161 為以太網物理層接口的低功耗、高速硬件電路。并且在嵌入式操作系統uCLinux實現
    發表于 08-14 12:07 ?34次下載

    基于S3C4510B的嵌入式路由的研究

    提出一種基于ARM 微處理器S3C4510BuClinux 操作系統的嵌入式路由的設計方案。首先簡單介紹了Netlink 套接字,然后分析嵌入式路由
    發表于 01-13 15:47 ?39次下載

    基于S3C4510B的HDLC協議實現

    使用嵌入式微處理器S3C4510B內部包含的HDLC控制器封裝和解析HDLC協議,微處理器既可實現系統功能,又可完成HDLC協議的數據傳輸,
    發表于 07-08 15:26 ?46次下載

    S3C4510B型ARM微處理器最小系統構建

    本文介紹S3C4510B型ARM微處理器最小系統的構建,并給出系統外圍相關器件的選型。
    發表于 08-19 14:33 ?3061次閱讀
    <b class='flag-5'>S3C4510B</b>型ARM<b class='flag-5'>微處理器</b>最小系統構建

    三星ARM處理器S3C4510B的HDLC通道使用及編程

    三星16/32位ARM處理器S3C4510B是目前在國內應用非常廣泛的一種性價比很高的ARM處理器,本文在介紹S3C4510B中HDLC通道結構特點的基礎上,詳細說明了
    發表于 04-05 11:44 ?1312次閱讀
    三星ARM<b class='flag-5'>處理器</b><b class='flag-5'>S3C4510B</b>的HDLC通道使用及編程

    基于S3C4510B微處理器和操作系統實現網絡通信工程的編寫設計

    Micro,是“小”的意思;C表示Control,是“控制”的意思,所以uCLinux就是Micro-Control-Linux,字面上的理解就是“針對微控制領域而設計的Linux系統
    的頭像 發表于 10-04 17:37 ?1950次閱讀
    基于<b class='flag-5'>S3C4510B</b><b class='flag-5'>微處理器</b>和操作系統<b class='flag-5'>實現</b><b class='flag-5'>網絡</b>通信工程的編寫設計

    基于S3C4510B微處理器的最小系統設計

    介紹S3C4510B型ARM微處理器和基于該處理器設計的最小系統,概述該系統外圍應用電路的選型,以便使用者自行設計開發。
    的頭像 發表于 07-23 15:17 ?803次閱讀
    基于<b class='flag-5'>S3C4510B</b>型<b class='flag-5'>微處理器</b>的最小系統設計