0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于uClinux和S3C4510B微處理器實(shí)現(xiàn)家庭網(wǎng)絡(luò)中央控制器的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:黃布毅;童志文;陳 ? 2021-06-19 17:05 ? 次閱讀

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

隨著信息社會(huì)的發(fā)展,網(wǎng)絡(luò)和信息家電越來(lái)越地出現(xiàn)在人們的生活中。人們普通要求將家庭內(nèi)的所有家用電器與Internet連接起來(lái),實(shí)現(xiàn)主人在遠(yuǎn)方用計(jì)算機(jī)或電話通過(guò)Internet對(duì)象家庭電設(shè)施進(jìn)行監(jiān)控。家用電器制造商可以通過(guò)網(wǎng)絡(luò)對(duì)其生產(chǎn)的設(shè)備進(jìn)行售后跟蹤服務(wù);家用電器是故障時(shí)能自動(dòng)按預(yù)設(shè)的郵件地址來(lái)發(fā)送電子郵件進(jìn)行報(bào)警。這就需要有一個(gè)“家庭網(wǎng)絡(luò)中央控制器”。它對(duì)外與Internet連接,對(duì)內(nèi)通過(guò)家庭內(nèi)部無(wú)線局域網(wǎng)將所有家用電器連接成一體,從而確保信息家電安全地接入Internet。當(dāng)前,多數(shù)研究單位推出的家庭網(wǎng)絡(luò)智能控制器,均以PC或準(zhǔn)PC機(jī)作為硬件平臺(tái),由于價(jià)位高而均未被市場(chǎng)容納。

嵌入式Internet是近幾年發(fā)展起來(lái)的一項(xiàng)新興技術(shù)。以32位ARM嵌入式微處理器為硬件平臺(tái),通過(guò)移植嵌入式操作系統(tǒng)uClinux內(nèi)核,開(kāi)發(fā)相應(yīng)的硬件驅(qū)動(dòng)、微型GUI和上層應(yīng)用軟件,最終實(shí)現(xiàn)產(chǎn)品化的嵌入式家庭網(wǎng)絡(luò)中央控制器。該系統(tǒng)具有體積小、功耗低、價(jià)格便宜的特點(diǎn)。

1 系統(tǒng)的硬件組成

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

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

2 uClinux嵌入式操作系統(tǒng)

操作系統(tǒng)選用uClinux。它是一個(gè)完全符合GNU(GNU’s Not Unix,自由軟件基金會(huì))/GPL(General Pulic License,通用公共許可證)公約的完全開(kāi)放代碼項(xiàng)目,是標(biāo)準(zhǔn)Linux的一個(gè)分支,現(xiàn)在由Lineo公司支持維護(hù)。它專門(mén)針對(duì)沒(méi)有MMU的CPU,并且專為嵌入式系統(tǒng)做了許多小型化的工作。

UClinux經(jīng)過(guò)對(duì)標(biāo)準(zhǔn)Linux內(nèi)核的改動(dòng),形成了一個(gè)高度優(yōu)化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,但uClinux仍然保留了Linux的大多數(shù)的優(yōu)點(diǎn),穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能、完備的對(duì)各種文件系統(tǒng)的支持以及標(biāo)準(zhǔn)豐富的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時(shí)選擇。

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

extern void SPI_init(void);

#endif

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

SPI_init();

#endif

④修改vendor/Samsung/4510b/Makefile,建立起設(shè)備節(jié)點(diǎn)。

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

啟動(dòng)后,會(huì)看到/proc/devinces中字符設(shè)備多了一項(xiàng)SPI 29。

S3C4510B有18個(gè)通用I/O口,其中高10位可設(shè)置為其它功能口。在該系統(tǒng)中,設(shè)置P8為中斷接收線,P11模擬主機(jī)輸出線MOSI,P12模擬主機(jī)時(shí)鐘SCK,P13模擬主機(jī)輸入線MISO。P8口用于接收PTR3000的發(fā)送請(qǐng)求信號(hào)。當(dāng)P8口接收到請(qǐng)求信號(hào)時(shí),系統(tǒng)進(jìn)入中斷處理。中斷處理進(jìn)程喚醒睡在睡眠隊(duì)列SPI_WAIT上的讀進(jìn)程,讀進(jìn)程由P12口輸出SCK信號(hào)并由P13口讀入數(shù)據(jù)。值得說(shuō)明的是,SPI不帶中斷線,在此用P8口做中斷接收線是為了避免操作系統(tǒng)在沒(méi)有進(jìn)行SPI操作時(shí)不斷向SCK線發(fā)時(shí)鐘信號(hào)。因此,MSP430F147IPM必須另外與S3C4510B連一個(gè)引腳在請(qǐng)求發(fā)送數(shù)據(jù)時(shí)發(fā)出中斷接收線是為了避免操作系統(tǒng)在沒(méi)有進(jìn)行SPI操作時(shí)不斷向SCK線發(fā)時(shí)鐘信號(hào)。因此,MSP430F147IPM必須另外與S3C4510B連一個(gè)引腳在請(qǐng)求發(fā)送數(shù)據(jù)時(shí)發(fā)出中斷請(qǐng)求信號(hào)。實(shí)現(xiàn)過(guò)程如下:

Static wait_queue_head_wait; //休眠隊(duì)列

//讀函數(shù)

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

{

interruptible_sleep_on(&SPI_wait); //讀進(jìn)程睡眠等待讀中斷信號(hào)

if(count>BUFNUM)count=BUFNUM;

for(num=0;num

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

iopdata=iopdata^0x1000; //時(shí)鐘輸出

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

}

}

if(copy_to_user(buf,&SPI_read,count)) //數(shù)據(jù)從內(nèi)核空間拷貝到用戶這間

return-EFAULT;

return count;

}

//寫(xiě)函數(shù)

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)) //數(shù)據(jù)從用戶空間拷貝到內(nèi)核空間

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; //時(shí)鐘輸出

}

}

return count;

}

//中斷響應(yīng)函數(shù)

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

{

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

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

return 1;

}

//字符設(shè)備驅(qū)動(dòng)接口

static struct file_operations SPI_fops={

owner; THIS_MODULE,

read: SPI_onlyread,

write: SPI_onlywrite,

};

//初始化函數(shù)

int_init SPI_init(void)

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

init_waitqueue_head(&SPI_wait);

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

return-EFAULT;

}

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

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

enable_irq(0); //開(kāi)中斷

return 0;

}

module_init(SPI_init);

MODULE_LICENSE(“GPL);

EXPORT_NO_SYMBOLS;

結(jié)語(yǔ)

實(shí)驗(yàn)證明,模擬的SPI口接收發(fā)送數(shù)據(jù)準(zhǔn)確可靠。用戶程序可以以設(shè)備文件的形式進(jìn)行訪問(wèn),與標(biāo)準(zhǔn)的SPI接口無(wú)異。該方案對(duì)于嵌入式家庭網(wǎng)關(guān)的研究,以及運(yùn)用uClinux作為操作系統(tǒng)的嵌入式模擬通信接口,有一定的參考價(jià)值。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16103

    瀏覽量

    177077
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2244

    瀏覽量

    82267
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2858

    瀏覽量

    87912
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于S3C4510B微處理器uClinux實(shí)現(xiàn)存儲(chǔ)系統(tǒng)的設(shè)計(jì)

    、FLASH、Normal DRAM和Sync.DRAM等。本文所采用的存儲(chǔ)包括有SDRAM和FLASH。S3C4510B(以下簡(jiǎn)稱4510微處理器是構(gòu)建在ARM核ARM7TDMI
    發(fā)表于 06-28 08:28 ?850次閱讀
    基于<b class='flag-5'>S3C4510B</b><b class='flag-5'>微處理器</b>和<b class='flag-5'>uClinux</b><b class='flag-5'>實(shí)現(xiàn)</b>存儲(chǔ)系統(tǒng)的設(shè)計(jì)

    μClinux在S3C4510B上的移植

    Linux是一種支持多種體系結(jié)構(gòu)處理器的操作系統(tǒng).有很強(qiáng)的移植性。描述了將UClinux移植到基于S3C4510B處理器目標(biāo)板上的方法與過(guò)程。首先介紹了
    發(fā)表于 03-28 13:18

    s3c4510b中文手冊(cè),s3c4510b用戶手冊(cè)

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

    s3c4510b中文資料

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

    基于uCLinuxS3C4510B網(wǎng)絡(luò)通信設(shè)計(jì)

    基于uCLinuxS3C4510B網(wǎng)絡(luò)通信設(shè)計(jì)
    發(fā)表于 03-28 09:49 ?17次下載

    μClinux在S3C4510B上的移植

    Linux是一種支持多種體系結(jié)構(gòu)處理器的操作系統(tǒng).有很強(qiáng)的移植性。描述了將UClinux移植到基于S3C4510B處理器目標(biāo)板上的方法與過(guò)程。首先介紹了
    發(fā)表于 03-28 09:51 ?16次下載

    網(wǎng)絡(luò)通信處理器S3C4510B的網(wǎng)口驅(qū)動(dòng)設(shè)計(jì)

    嵌入式處理器S3C4510B網(wǎng)絡(luò)控制和通信領(lǐng)域有著相當(dāng)廣泛的應(yīng)用。本文簡(jiǎn)要描述該處理器內(nèi)嵌的以太網(wǎng)控制
    發(fā)表于 05-15 16:24 ?18次下載

    基于uCLinuxS3C4510B網(wǎng)絡(luò)通信設(shè)計(jì)

    結(jié)合工程實(shí)例, 基于S3C4510B 微處理器, 構(gòu)建以DM9161 為以太網(wǎng)物理層接口的低功耗、高速硬件電路;在嵌入式操作系統(tǒng)uCLinux實(shí)現(xiàn)
    發(fā)表于 05-16 13:29 ?16次下載

    基于uCLinuxS3C4510B網(wǎng)絡(luò)通信的設(shè)計(jì)與實(shí)現(xiàn)

    文章結(jié)合工程實(shí)例,基于S3C4510B 微處理器構(gòu)建了以DM9161 為以太網(wǎng)物理層接口的低功耗、高速硬件電路。并且在嵌入式操作系統(tǒng)uCLinux實(shí)現(xiàn)
    發(fā)表于 08-14 12:07 ?34次下載

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

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

    基于S3C4510B的HDLC協(xié)議實(shí)現(xiàn)

    使用嵌入式微處理器S3C4510B內(nèi)部包含的HDLC控制器封裝和解析HDLC協(xié)議,微處理器既可實(shí)現(xiàn)系統(tǒng)功能,又可完成HDLC協(xié)議的數(shù)據(jù)傳輸,
    發(fā)表于 07-08 15:26 ?46次下載

    S3C4510B型ARM微處理器最小系統(tǒng)構(gòu)建

    本文介紹S3C4510B型ARM微處理器最小系統(tǒng)的構(gòu)建,并給出系統(tǒng)外圍相關(guān)器件的選型。
    發(fā)表于 08-19 14:33 ?3034次閱讀
    <b class='flag-5'>S3C4510B</b>型ARM<b class='flag-5'>微處理器</b>最小系統(tǒng)構(gòu)建

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

    三星16/32位ARM處理器S3C4510B是目前在國(guó)內(nèi)應(yīng)用非常廣泛的一種性價(jià)比很高的ARM處理器,本文在介紹S3C4510B中HDLC通道結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,詳細(xì)說(shuō)明了
    發(fā)表于 04-05 11:44 ?1293次閱讀
    三星ARM<b class='flag-5'>處理器</b><b class='flag-5'>S3C4510B</b>的HDLC通道使用及編程

    基于S3C4510B微處理器和操作系統(tǒng)實(shí)現(xiàn)網(wǎng)絡(luò)通信工程的編寫(xiě)設(shè)計(jì)

    Micro,是“小”的意思;C表示Control,是“控制”的意思,所以uCLinux就是Micro-Control-Linux,字面上的理解就是“針對(duì)微控制領(lǐng)域而設(shè)計(jì)的Linux系統(tǒng)
    的頭像 發(fā)表于 10-04 17:37 ?1941次閱讀
    基于<b class='flag-5'>S3C4510B</b><b class='flag-5'>微處理器</b>和操作系統(tǒng)<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>網(wǎng)絡(luò)</b>通信工程的編寫(xiě)設(shè)計(jì)

    基于S3C4510B微處理器的最小系統(tǒng)設(shè)計(jì)

    介紹S3C4510B型ARM微處理器和基于該處理器設(shè)計(jì)的最小系統(tǒng),概述該系統(tǒng)外圍應(yīng)用電路的選型,以便使用者自行設(shè)計(jì)開(kāi)發(fā)。
    的頭像 發(fā)表于 07-23 15:17 ?792次閱讀
    基于<b class='flag-5'>S3C4510B</b>型<b class='flag-5'>微處理器</b>的最小系統(tǒng)設(shè)計(jì)