當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件

1

嵌入式系統(tǒng)是"控制、監(jiān)視或者輔助裝置、機(jī)器和設(shè)備運(yùn)行的裝置"(devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants)。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。目前國(guó)內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。

在嵌入式系統(tǒng)時(shí)代,所有的設(shè)備都要網(wǎng)絡(luò)化,這是未來(lái)科技發(fā)展的趨勢(shì)。而在自動(dòng)化領(lǐng)域有成千上萬(wàn)的傳感器,控制器及其他設(shè)備。而他們之間最常用的通信接口就是 RS-232 串口。而隨著通信技術(shù)的進(jìn)步,這種簡(jiǎn)單的通信方法越來(lái)越不能適應(yīng)需要。而高度成熟的網(wǎng)絡(luò)技術(shù)為這一問(wèn)題的解決提供了一種思路。在實(shí)際工作中,筆者為了通過(guò)Internet讀取只有RS-232串口的傳感器中數(shù)據(jù),基于S3C4510B設(shè)計(jì)了一個(gè)串口網(wǎng)絡(luò)服務(wù)器的最小系統(tǒng)。

2 硬件設(shè)計(jì)

本系統(tǒng)微處理器采用三星公司的硬件S3C4510B,網(wǎng)口控制芯片采用Realtek公司的RTL8201,串口控制芯片采用常見(jiàn)的MAX232.主要芯片都是高度集成,接線(xiàn)簡(jiǎn)潔,原理清晰。體系結(jié)構(gòu)如圖1所示。


2.1 S3C4510B簡(jiǎn)介

S3C4510CPU芯片是samsung公司arm7TDMI系列中的一個(gè)型號(hào),其工作頻率為50MHZ,片內(nèi)集成了豐富的通用模塊,含有支持10M/100M自適應(yīng)的以太網(wǎng)控制器,可以直接通過(guò)PHY芯片引出以太網(wǎng)接口。已太網(wǎng)PHY芯片選用Intel公司的lxt972a芯片,它具有10M、100M自適應(yīng)收發(fā)功能,支持全雙工操作,經(jīng)過(guò)網(wǎng)絡(luò)變壓器YL18-2050S連接到RJ45,進(jìn)行收發(fā)數(shù)據(jù)包功能。此外,該系統(tǒng)還使用聊2MBflash,16MBSDRAM和512KBSRAM作為存儲(chǔ)器。

2.2 Flash存儲(chǔ)器接口電路

FLASH閃存閃存的英文名稱(chēng)是"FlashMemory",一般簡(jiǎn)稱(chēng)為"Flash",它屬于內(nèi)存器件的一種。不過(guò)閃存的物理特性與常見(jiàn)的內(nèi)存有根本性的差異:目前各類(lèi)DDR、SDRAM或者RDRAM都屬于揮發(fā)性?xún)?nèi)存,只要停止電流供應(yīng)內(nèi)存中的數(shù)據(jù)便無(wú)法保持,因此每次電腦開(kāi)機(jī)都需要把數(shù)據(jù)重新載入內(nèi)存;閃存則是一種不揮發(fā)性(Non-Volatile)內(nèi)存,在沒(méi)有電流供應(yīng)的條件下也能夠長(zhǎng)久地保持?jǐn)?shù)據(jù),其存儲(chǔ)特性相當(dāng)于硬盤(pán),這項(xiàng)特性正是閃存得以成為各類(lèi)便攜型數(shù)字設(shè)備的存儲(chǔ)介質(zhì)的基礎(chǔ)。

本系統(tǒng)中采用的Flash存儲(chǔ)器日本富士公司生產(chǎn)的MBM29F016.具有16M位(2M字節(jié))、單一5V供電的閃速存儲(chǔ)器。2M字節(jié)的數(shù)據(jù)區(qū)被分為32個(gè)64k字節(jié)的區(qū)段,因而具有靈活擦除功能。

Flash在本系統(tǒng)中用來(lái)存放uClinux操作系統(tǒng)程序代碼。系統(tǒng)上電或復(fù)位后從此處獲取指令并開(kāi)始執(zhí)行。因此S3C4510B的nRCS<0>接至MBM29F016的CE#端。RES#端接系統(tǒng)服務(wù)信號(hào)。OE#接S3C4510B的nOE,

WE#端接S3C4510B的nWBE<0>.地址總線(xiàn)[a19~A0]與S3C4510B的地址總線(xiàn)[ADDR19~ADDR0]相連。16位數(shù)據(jù)總線(xiàn)[DQ15~DQ0]與S3C4510B的低16位數(shù)據(jù)總線(xiàn)[XDATA15~XDATA0].

2.3 SDRAM接口電路

SDRAM:SynchronousDynamicRandomAccessMemory,同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,同步是指Memory工作需要同步時(shí)鐘,內(nèi)部的命令的發(fā)送與數(shù)據(jù)的傳輸都以它為基準(zhǔn);動(dòng)態(tài)是指存儲(chǔ)陣列需要不斷的刷新來(lái)保證數(shù)據(jù)不丟失;隨機(jī)是指數(shù)據(jù)不是線(xiàn)性依次存儲(chǔ),而是自由指定地址進(jìn)行數(shù)據(jù)讀寫(xiě)。SDRAM從發(fā)展到現(xiàn)在已經(jīng)經(jīng)歷了四代,分別是:第一代SDRSDRAM,第二代DDRSDRAM,第三代DDR2SDRAM,第四代DDR3SDRAM.(顯卡上的DDR已經(jīng)發(fā)展到DDR5)

與Flash存儲(chǔ)器相比較,SDRAM不具有掉電保持?jǐn)?shù)據(jù)的特性,但其存取速度大大高于Flash存儲(chǔ)器,且具有讀/寫(xiě)的屬性。因此,SDRAM在系統(tǒng)中主要用作程序的運(yùn)行空間、數(shù)據(jù)及堆棧區(qū)。當(dāng)系統(tǒng)啟動(dòng)時(shí),CPU首先從復(fù)位地址0x0處讀取啟動(dòng)代碼,在完成系統(tǒng)的初始化后,程序代碼一般應(yīng)調(diào)入SDRAM中運(yùn)行,以提供系統(tǒng)的運(yùn)行速度。同時(shí),系統(tǒng)及用戶(hù)堆棧、運(yùn)行數(shù)據(jù)也都存放在SDRAM中。與Flash存儲(chǔ)器相比,SDRAM的控制信號(hào)較多,其連接電路也相對(duì)復(fù)雜。

本系統(tǒng)采用兩片HY57V641620并聯(lián)構(gòu)成32位的SDRAM存儲(chǔ)系統(tǒng),其中一片為高16位,另一片為低16位。兩片HY57V641620的CLK端接的SDCLK端。兩片HY57V641620的CLE端接S3C4510B CLE端。兩片HY57V641620的A11~A0接S3C4510B ADDR<11>~ADDR<0>;高16位片的DQ15~DQ0接S3C4510B 的數(shù)據(jù)總線(xiàn)的高16位XDATA<31>~XDATA<16>;低16位片的DQ15~DQ0接S3C4510B的數(shù)據(jù)總線(xiàn)的低16位XDATA<15>~XDATA<0>.

2.4 RTL8201接口電路

RTL8201是Realtek公司生產(chǎn)的一種全雙工以太網(wǎng)控制器,由于其優(yōu)良的性能、廉價(jià)的價(jià)格,使其在市場(chǎng)上10MbpsiISA總線(xiàn)網(wǎng)卡中占有相當(dāng)?shù)谋壤?。按?shù)據(jù)鏈路的不同,可以將RTL8201內(nèi)部劃分為遠(yuǎn)程DMA(remote,DMA)通道和本地DMA(local DMA)通道兩部分。本地DMA完成控制器與網(wǎng)線(xiàn)的數(shù)據(jù)交換,主處理器收發(fā)數(shù)據(jù)只需對(duì)遠(yuǎn)程DMA操作。當(dāng)主處理器要向網(wǎng)上發(fā)送數(shù)據(jù)時(shí),先將一幀數(shù)據(jù)通過(guò)遠(yuǎn)程DMA通道送到RTL8201中的發(fā)送緩存區(qū),然后發(fā)出傳送數(shù)據(jù)命令。RTL8201在完成了上一幀的發(fā)送后,再完成此幀的發(fā)送。RTL8201接收到的數(shù)據(jù)通過(guò)MAC比較,CRC校驗(yàn)后,由FIFO存到接收緩沖區(qū),收滿(mǎn)一幀后,以中斷的方式通知主處理器。

由于S3C4510B片內(nèi)已有帶MII接口的MAC控制器,而RTL8201也提供了MII接口,各種信號(hào)的定義也很明確,因此RTL8201與S3C4510B的連接也比較簡(jiǎn)單。直接將兩者的同名端連接即可。

2.5 MAX232接口電路

Max232產(chǎn)品是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。該器件包含2驅(qū)動(dòng)器、2接收器和一個(gè)電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個(gè)接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-VTTL/CMOS電平。每一個(gè)發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。

MAX232芯片時(shí)MAXIM公司生產(chǎn)的低功耗、單電源雙RS232發(fā)送/接收器。適用于各種EIA-232E和V.28/V.24的通信接口。MAX232芯片內(nèi)部有一個(gè)電源電壓變換器,可以把輸入的+5V電源變換城RS-232C輸出電平所需10V電壓,所以采用此芯片接口的串行通信系統(tǒng)只要單一的+5V電源就可以。

現(xiàn)選用其中一路發(fā)送/接受。T1I接S3C4510B的TXD0端,R1O接S3C4510B的RXD0端。因?yàn)镸AX232具有驅(qū)動(dòng)能力,所以不需要外加驅(qū)動(dòng)電路。

3 軟件設(shè)計(jì)

本系統(tǒng)采用uClinux作為操作系統(tǒng)。與一般全靠硬件實(shí)現(xiàn)的串口服務(wù)器比較起來(lái),配置要復(fù)雜,需要用戶(hù)具有一定的技術(shù)背景,不過(guò)因?yàn)閹в胁僮飨到y(tǒng),其靈活性也是硬件串口服務(wù)器所不能比擬的。用戶(hù)可以通過(guò)編寫(xiě)應(yīng)用程序,來(lái)隨意擴(kuò)展所需的功能。

uCLinux是一種優(yōu)秀的嵌入式Linux版本,是micro-Conrol-Linux的縮寫(xiě)。它秉承了標(biāo)準(zhǔn)Linux的優(yōu)良特性,經(jīng)過(guò)各方面的小型化改造,形成了一個(gè)高度優(yōu)化的、代碼緊湊的嵌入式Linux.雖然它的體積很小,卻仍然保留了Linux的大多數(shù)的優(yōu)點(diǎn):穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能、對(duì)各種文件系統(tǒng)完備的支持和標(biāo)準(zhǔn)豐富的API.它專(zhuān)為嵌入式系統(tǒng)做了許多小型化的工作,目前已支持多款CPU.其編譯后目標(biāo)文件可控制在幾百KB數(shù)量級(jí),并已經(jīng)被成功地移植到很多平臺(tái)上。具有以下優(yōu)點(diǎn):

(1) Linux是開(kāi)放源代碼的,不存在黑箱技術(shù),遍布全球的眾多Linux愛(ài)好者都是Linux開(kāi)發(fā)者的強(qiáng)大技術(shù)支持者。

(2) Linux源代碼隨處可見(jiàn),注釋豐富,文檔齊全,易于解決各種問(wèn)題。

(3) Linux的內(nèi)核小,效率高。

(4) Linux內(nèi)核的結(jié)構(gòu)在網(wǎng)絡(luò)方面是非常完整的,它提供了對(duì)包括十兆位、百兆位及千兆位的以太網(wǎng)絡(luò),還有無(wú)線(xiàn)網(wǎng)絡(luò),以及光纖等的支持。

(5) Linux在內(nèi)核結(jié)構(gòu)的設(shè)計(jì)中考慮適應(yīng)系統(tǒng)的可裁減性的要求??蓪o(wú)用的代碼去除掉,近一步減少內(nèi)核規(guī)模。

3.1 串口程序的設(shè)計(jì)

Linux對(duì)所有各類(lèi)設(shè)備文件的輸入輸出擦作看上去就像對(duì)普通文件的輸入輸出一樣。所以L(fǎng)inux對(duì)串口的操作,也是通過(guò)設(shè)備文件訪(fǎng)問(wèn)的。為了訪(fǎng)問(wèn)串口,只需打開(kāi)相應(yīng)的設(shè)備文件即可。在Linux下,默認(rèn)串行口COM1和COM2對(duì)應(yīng)的設(shè)備分別為/dev/ttyS0 和/dev/ttyS1.

(1) 打開(kāi)串口是通過(guò)使用標(biāo)準(zhǔn)的文件打開(kāi)函數(shù)操作:

int fd;

/*以讀寫(xiě)方式打開(kāi)串口*/

fd = open( "/dev/ttyS0", O_RDWR);

if (-1 == fd){

/* 不能打開(kāi)串口一*/

perror(" 提示錯(cuò)誤!");

}

(2) 設(shè)置串口

最基本的設(shè)置串口包括波特率設(shè)置,效驗(yàn)位和停止位設(shè)置。串口的設(shè)置主要是設(shè)置 struct termios 結(jié)構(gòu)體的各成員值。

struct termio

{ unsigned short c_iflag; /* 輸入模式標(biāo)志 */

unsigned short c_oflag; /* 輸出模式標(biāo)志 */

unsigned short c_cflag; /* 控制模式標(biāo)志*/

unsigned short c_lflag; /* local mode flags */

unsigned char c_line; /* line discipline */

unsigned char c_cc[NCC]; /* control characters */

};

(3) 發(fā)送數(shù)據(jù)

char buffer[1024];int Length;int nByte;nByte = write(fd, buffer ,Length)

(4) 讀取串口數(shù)據(jù)

使用文件操作read函數(shù)讀取,如果設(shè)置為原始模式(Raw Mode)傳輸數(shù)據(jù),那么read函數(shù)返回的字符數(shù)是實(shí)際串口收到的字符數(shù)??梢允褂貌僮魑募暮瘮?shù)來(lái)實(shí)現(xiàn)異步讀取,如fcntl,或者select等來(lái)操作。

char buff[1024];int Len;int readByte = read(fd,buff,Len);

3.2 網(wǎng)絡(luò)程序的設(shè)計(jì)

Linux系統(tǒng)是通過(guò)提供套接字(socket)來(lái)進(jìn)行網(wǎng)絡(luò)編程的。網(wǎng)絡(luò)程序通過(guò)socket和其它幾個(gè)函數(shù)的調(diào)用,會(huì)返回一個(gè) 通訊的文件描述符,我們可以將這個(gè)描述符看成普通的文件的描述符來(lái)操作,這就是linux的設(shè)備無(wú)關(guān)性的 好處。我們可以通過(guò)向描述符讀寫(xiě)操作實(shí)現(xiàn)網(wǎng)絡(luò)之間的數(shù)據(jù)交流。以下介紹一下程序設(shè)計(jì)時(shí)常用的函數(shù)。

(1) socket

int socket(int domain, int type,int protocol)

domain:說(shuō)明我們網(wǎng)絡(luò)程序所在的主機(jī)采用的通訊協(xié)族(AF_UNIX和AF_INET等)。

type:我們網(wǎng)絡(luò)程序所采用的通訊協(xié)議。

protocol:由于我們指定了type,所以這個(gè)地方我們一般只要用0來(lái)代替就可以了。

(2) bind

int bind(int sockfd, struct sockaddr *my_addr, int addrlen)

sockfd:是由socket調(diào)用返回的文件描述符。

addrlen:是sockaddr結(jié)構(gòu)的長(zhǎng)度。

my_addr:是一個(gè)指向sockaddr的指針。

(3) listen

int listen(int sockfd,int backlog)

sockfd:是bind后的文件描述符。

backlog:設(shè)置請(qǐng)求排隊(duì)的最大長(zhǎng)度。當(dāng)有多個(gè)客戶(hù)端程序和服務(wù)端相連時(shí), 使用這個(gè)表示可以介紹的排隊(duì)長(zhǎng)度。 listen函數(shù)將bind的文件描述符變?yōu)楸O(jiān)聽(tīng)套接字。返回的情況和bind一樣。

(4) accept

int accept(int sockfd, struct sockaddr *addr,int *addrlen)

sockfd:是listen后的文件描述符。

(5)connect

int connect(int sockfd, struct sockaddr * serv_addr,int addrlen)。

sockfd:socket返回的文件描述符。

serv_addr:儲(chǔ)存了服務(wù)器端的連接信息。其中sin_add是服務(wù)端的地址。

addrlen:serv_addr的長(zhǎng)度。

connect函數(shù)是客戶(hù)端用來(lái)同服務(wù)端連接的。

總的來(lái)說(shuō)網(wǎng)絡(luò)程序是由兩個(gè)部分組成的--客戶(hù)端和服務(wù)器端。它們的建立步驟一般是: 服務(wù)器端 socket-->bind-->listen-->accept.客戶(hù)端 socket-->connect.

4 結(jié)語(yǔ)

本串口服務(wù)器,采用三星公司的S3C4510B ARM7系列微處理器及uClinux操作系統(tǒng),通過(guò)編程實(shí)現(xiàn)了串口數(shù)據(jù)到以太網(wǎng)口或以太網(wǎng)口到串口的數(shù)據(jù)轉(zhuǎn)換。經(jīng)過(guò)幾個(gè)月的運(yùn)行,證明穩(wěn)定可靠。由于A(yíng)RM系列微處理器的優(yōu)異性能,本系統(tǒng)上完全可以再加上1/2/4/8個(gè)RS-485/422/232串口,輕松連接網(wǎng)絡(luò)并管理數(shù)量眾多且分散在不同位置的串行設(shè)備。




QICK

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉