日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于嵌入式系統的串口網絡服務器的設計

1 引言

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

2 硬件設計

    本系統微處理器采用三星公司的硬件S3C4510B,網口控制芯片采用Realtek公司的RTL8201,串口控制芯片采用常見的MAX232。主要芯片都是高度集成,接線簡潔,原理清晰。體系結構如圖1所示。


2.1  S3C4510B簡介
    本系統CPU選用Samsung公司的S3C4510B。S3C4510B是基于以太網應用系統的高性價比16/32位RISC微控制器,內含一個有ARM公司設計的16/32位ARM7TDMI RISC處理器,ARM7TDMI為低功耗高性能的16/32核。最適合用于對價格及功耗敏感的應用場合。
2.2  Flash存儲器接口電路
    Flash存儲器實在EPROM和EEPROM的制造基礎上產生的一種非易失存儲器。該存儲器集成度高,制造成本低于DRAM,即具有SRAM讀寫的靈活行和較快的訪問速 度又具有ROM在斷電之后不丟失信息的特點所以發(fā)展迅速。Flash在系統中通常用于存放程序代碼,常量表以及一些在系統掉電后需要保存的用戶數據。
    本系統中采用的Flash存儲器日本富士公司生產的MBM29F016。具有16M位(2M字節(jié))、單一5V供電的閃速存儲器。2M字節(jié)的數據區(qū)被分為32個64k字節(jié)的區(qū)段,因而具有靈活擦除功能。
    Flash在本系統中用來存放uClinux操作系統程序代碼。系統上電或復位后從此處獲取指令并開始執(zhí)行。因此S3C4510B的nRCS<0>接至MBM29F016的CE#端。RES#端接系統服務信號。OE#接S3C4510B的nOE,
WE#端接S3C4510B的nWBE<0>。地址總線[a19~A0]與S3C4510B的地址總線[ADDR19~ADDR0]相連。16位數據總線[DQ15~DQ0]與S3C4510B的低16位數據總線[XDATA15~XDATA0]。[!--empirenews.page--]
2.3  SDRAM接口電路
    SDRAM是高速的動態(tài)隨機存取存儲器,它的同步接口和完全流水線的內部結構使其擁有極大的數據速率。目前SDRAM時鐘頻率已達100MHz以上。另外他們的行、列地址線共用。由行地址選通(CAS)、列地址選通(RAS)信號分時控制。SDRAM內部以bank位組織,可由行、列地址尋址。另外為了保持內部數據還必須進行刷新。
    與Flash存儲器相比較,SDRAM不具有掉電保持數據的特性,但其存取速度大大高于Flash存儲器,且具有讀/寫的屬性。因此,SDRAM在系統中主要用作程序的運行空間、數據及堆棧區(qū)。當系統啟動時,CPU首先從復位地址0x0處讀取啟動代碼,在完成系統的初始化后,程序代碼一般應調入SDRAM中運行,以提供系統的運行速度。同時,系統及用戶堆棧、運行數據也都存放在SDRAM中。與Flash存儲器相比,SDRAM的控制信號較多,其連接電路也相對復雜。
    本系統采用兩片HY57V641620并聯構成32位的SDRAM存儲系統,其中一片為高16位,另一片為低16位。兩片HY57V641620的CLK端接的SDCLK端。兩片HY57V641620的CLE端接S3C4510B CLE端。兩片HY57V641620的A11~A0接S3C4510B ADDR<11>~ADDR<0>;高16位片的DQ15~DQ0接S3C4510B  的數據總線的高16位XDATA<31>~XDATA<16>;低16位片的DQ15~DQ0接S3C4510B的數據總線的低16位XDATA<15>~XDATA<0>。
2.4  RTL8201接口電路
    RTL8201是Realtek公司生產的一種全雙工以太網控制器,由于其優(yōu)良的性能、廉價的價格,使其在市場上10MbpsiISA總線網卡中占有相當的比例。按數據鏈路的不同,可以將RTL8201內部劃分為遠程DMA(remote,DMA)通道和本地DMA(local DMA)通道兩部分。本地DMA完成控制器與網線的數據交換,主處理器收發(fā)數據只需對遠程DMA操作。當主處理器要向網上發(fā)送數據時,先將一幀數據通過遠程DMA通道送到RTL8201中的發(fā)送緩存區(qū),然后發(fā)出傳送數據命令。RTL8201在完成了上一幀的發(fā)送后,再完成此幀的發(fā)送。RTL8201接收到的數據通過MAC比較,CRC校驗后,由FIFO存到接收緩沖區(qū),收滿一幀后,以中斷的方式通知主處理器。
    由于S3C4510B片內已有帶MII接口的MAC控制器,而RTL8201也提供了MII接口,各種信號的定義也很明確,因此RTL8201與S3C4510B的連接也比較簡單。直接將兩者的同名端連接即可。
2.5 MAX232接口電路
    MAX232芯片時MAXIM公司生產的低功耗、單電源雙RS232發(fā)送/接收器。適用于各種EIA-232E和V.28/V.24的通信接口。MAX232芯片內部有一個電源電壓變換器,可以把輸入的+5V電源變換城RS-232C輸出電平所需10V電壓,所以采用此芯片接口的串行通信系統只要單一的+5V電源就可以。
現選用其中一路發(fā)送/接受。T1I接S3C4510B的TXD0端,R1O接S3C4510B的RXD0端。因為MAX232具有驅動能力,所以不需要外加驅動電路。

3 軟件設計

     本系統采用uClinux作為操作系統。與一般全靠硬件實現的串口服務器比較起來,配置要復雜,需要用戶具有一定的技術背景,不過因為帶有操作系統,其靈活性也是硬件串口服務器所不能比擬的。用戶可以通過編寫應用程序,來隨意擴展所需的功能。
Uclinux是一個完全符合GNU/GPL公約的操作系統,完全開發(fā)代碼,并且免費。Uclinux即“微控制領域中的Linux系統”,具有以下優(yōu)點:
(1) Linux是開放源代碼的,不存在黑箱技術,遍布全球的眾多Linux愛好者都是Linux開發(fā)者的強大技術支持者。
(2) Linux源代碼隨處可見,注釋豐富,文檔齊全,易于解決各種問題。
(3) Linux的內核小,效率高。
(4) Linux內核的結構在網絡方面是非常完整的,它提供了對包括十兆位、百兆位及千兆位的以太網絡,還有無線網絡,以及光纖等的支持。
(5) Linux在內核結構的設計中考慮適應系統的可裁減性的要求??蓪o用的代碼去除掉,近一步減少內核規(guī)模。
3.1 串口程序的設計
  Linux對所有各類設備文件的輸入輸出擦作看上去就像對普通文件的輸入輸出一樣。所以Linux對串口的操作,也是通過設備文件訪問的。為了訪問串口,只需打開相應的設備文件即可。在Linux下,默認串行口COM1和COM2對應的設備分別為/dev/ttyS0 和/dev/ttyS1。
(1) 打開串口是通過使用標準的文件打開函數操作:
int fd;
/*以讀寫方式打開串口*/
fd = open( "/dev/ttyS0", O_RDWR);
if (-1 == fd){
/* 不能打開串口一*/
perror(" 提示錯誤!");
}
(2) 設置串口
最基本的設置串口包括波特率設置,效驗位和停止位設置。串口的設置主要是設置 struct termios 結構體的各成員值。
struct termio
{ unsigned short  c_iflag; /* 輸入模式標志 */
 unsigned short  c_oflag;  /* 輸出模式標志 */
 unsigned short  c_cflag;  /* 控制模式標志*/
 unsigned short  c_lflag;  /* local mode flags */
 unsigned char  c_line;      /* line discipline */
 unsigned char  c_cc[NCC];    /* control characters */
};
(3) 發(fā)送數據
char  buffer[1024];int    Length;int    nByte;nByte = write(fd, buffer ,Length)
(4) 讀取串口數據
使用文件操作read函數讀取,如果設置為原始模式(Raw Mode)傳輸數據,那么read函數返回的字符數是實際串口收到的字符數??梢允褂貌僮魑募暮瘮祦韺崿F異步讀取,如fcntl,或者select等來操作。 [!--empirenews.page--]
char  buff[1024];int    Len;int  readByte = read(fd,buff,Len);
3.2 網絡程序的設計
Linux系統是通過提供套接字(socket)來進行網絡編程的。網絡程序通過socket和其它幾個函數的調用,會返回一個 通訊的文件描述符,我們可以將這個描述符看成普通的文件的描述符來操作,這就是linux的設備無關性的 好處。我們可以通過向描述符讀寫操作實現網絡之間的數據交流。以下介紹一下程序設計時常用的函數。
(1) socket
int socket(int domain, int type,int protocol)
domain:說明我們網絡程序所在的主機采用的通訊協族(AF_UNIX和AF_INET等)。
type:我們網絡程序所采用的通訊協議。
protocol:由于我們指定了type,所以這個地方我們一般只要用0來代替就可以了。
(2) bind
int bind(int sockfd, struct sockaddr *my_addr, int addrlen)
sockfd:是由socket調用返回的文件描述符。
addrlen:是sockaddr結構的長度。
my_addr:是一個指向sockaddr的指針。
(3) listen
int listen(int sockfd,int backlog)
sockfd:是bind后的文件描述符。
backlog:設置請求排隊的最大長度。當有多個客戶端程序和服務端相連時, 使用這個表示可以介紹的排隊長度。 listen函數將bind的文件描述符變?yōu)楸O(jiān)聽套接字。返回的情況和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:儲存了服務器端的連接信息。其中sin_add是服務端的地址。
addrlen:serv_addr的長度。
connect函數是客戶端用來同服務端連接的。
總的來說網絡程序是由兩個部分組成的--客戶端和服務器端。它們的建立步驟一般是: 服務器端 socket-->bind-->listen-->accept??蛻舳?socket-->connect。

4 結語

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

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

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產品設計和系統開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產品供給。 搭養(yǎng)老政策東風 ...

關鍵字: 溫度 BSP 東風 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎單元,承載著生存與活動的最基本功能。而對于理想空間的解構意義卻在物理性容器之外,體現出人們對于空間和生活深層關系的思考,同時也塑造著人與空間的新型連接...

關鍵字: 溫度 BSP 智能化 進程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預告。今年前三季度,公司預計實現營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預計為1.73億...

關鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術中心"認定。 北京市企業(yè)技...

關鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數據公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關鍵字: IDC BSP 數字化 數據中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團成立60周年的紀念日。趁著首都銀行集團成立60周年與首都銀行(中國)在華深耕經營12年的“大日子”,圍繞作為外資金融機構對在華戰(zhàn)略的構想和業(yè)...

關鍵字: 數字化 BSP 供應鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團公司上海通運國際物流有限公司(Nipp...

關鍵字: 溫控 精密儀器 半導體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術企業(yè)云集,展出的智能產品超過140,...

關鍵字: 中國智造 BSP 手機 CAN

Lua RTOS 是一個實時操作系統,設計在嵌入式系統上運行,對 FLASH 和 RAM 內存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平臺,并可以輕松移植到其他32位...

關鍵字: Lua RTOS 操作系統 嵌入式系統

串口作為單片機開發(fā)的一個常用的外設,應用范圍非常廣。大部分時候,串口需要接收處理的數據長度是不定的。那么怎么才能判斷一幀數據是否結束呢,今天就以STM32單片機為例,介紹幾種接收不定長數據的方法。

關鍵字: 單片機 串口 STM32

嵌入式教程

6897 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉