用8位單片機(jī)實(shí)現(xiàn)串口-以太網(wǎng)轉(zhuǎn)換器
將嵌入式系統(tǒng)與Internet相連的主要困難在于:Internet上面的各種通信協(xié)議對于存儲器、運(yùn)算速度等的要求比較高硫忆,而嵌入式系統(tǒng)中除部分32位處理器以外筷资,大量存在的是8位和16位MCU,支持TCP/IP等Internet協(xié)議將占用大量系統(tǒng)資源俯炮,從而影響本來的功能或根本不可能實(shí)現(xiàn)冬溯。
本文根據(jù)所做項(xiàng)目需要,用8031單片機(jī)和RTL8019AS網(wǎng)卡實(shí)現(xiàn)了RS485串口設(shè)備數(shù)據(jù)文件通過以太網(wǎng)傳輸?shù)竭h(yuǎn)端計算機(jī)的功能。
1 串行通訊
串行通訊在通訊領(lǐng)域被廣泛應(yīng)用敦浅。標(biāo)準(zhǔn)的RS232接口已成為計算機(jī)录教、計算機(jī)外設(shè)、交換機(jī)和許多通訊設(shè)備的標(biāo)準(zhǔn)接口赛琢。在我國工業(yè)總線的應(yīng)用中字瘫,RS-485、RS-422使用最為普遍悴碳。
在串行接口連接中借街,按連接方式可分為面向連接和無連接。無連接原理比較簡單灾囊,通訊雙方無握手過程听想。一方如有數(shù)據(jù)需要發(fā)送,則立即通過串行接口發(fā)送出去马胧,另一方被動接受汉买。該方式能夠達(dá)到較高的通訊速率,但不能保證數(shù)據(jù)傳輸?shù)目煽啃耘寮梗挥糜谝恍?shù)據(jù)可靠性要求不高的場合蛙粘,如語音、圖像等威彰。而面向通訊過程則不同出牧,在甲方有數(shù)據(jù)發(fā)送請求時,則向乙方發(fā)送“請求發(fā)送數(shù)據(jù)”命令歇盼。乙方收到后舔痕,如準(zhǔn)備就緒,則回送確認(rèn)信息豹缀。甲方得到乙方的確認(rèn)后方可發(fā)送數(shù)據(jù)赵讯。在大多數(shù)情況下,乙方要對收到的數(shù)據(jù)進(jìn)行校驗(yàn)耿眉,校驗(yàn)正確發(fā)送“通訊終止”命令边翼,否則可發(fā)送“重發(fā)”命令淳某。面向連接的串行通訊過程實(shí)踐起來通常要復(fù)雜得多,通常用于數(shù)據(jù)文件的傳輸徽七。
2 以太網(wǎng)的物理傳輸幀
標(biāo)準(zhǔn)IEEE802.3幀結(jié)構(gòu)有七部分組成馍上,如表1所示。其中除了數(shù)據(jù)域的長度不固定外蛹柔,其他的長度都是固定不變的哑暮。在發(fā)送數(shù)據(jù)時,幀頭电尖、起始位和校驗(yàn)位都是網(wǎng)卡自動添加的奕碑;在接收數(shù)據(jù)時,幀頭和起始位將被網(wǎng)卡自動跳過勺帜,即網(wǎng)卡一旦檢測到有效幀頭和幀起始位,就認(rèn)為有效數(shù)據(jù)開始,并將有效數(shù)據(jù)存入接收緩沖環(huán)脆号。
3 以太網(wǎng)卡
RTL8019AS網(wǎng)卡是8/16位ISA總線的網(wǎng)卡,遵循的標(biāo)準(zhǔn)與協(xié)議為IEEE802.3晤哩。按功能可將其劃分為接收功能模塊寝话、CRC產(chǎn)生模塊、發(fā)送功能模塊侈净、地址識別模塊尊勿、FIFO控制模塊、協(xié)議邏輯陣列模塊以及DMA和緩沖控制模塊等部分畜侦。對網(wǎng)卡進(jìn)行編程就可以實(shí)現(xiàn)局域網(wǎng)內(nèi)任意站點(diǎn)之間的通信而不需要網(wǎng)絡(luò)操作系統(tǒng)的支持元扔。
熟悉網(wǎng)卡接口電路是實(shí)現(xiàn)對網(wǎng)卡編程的首要條件。網(wǎng)卡接口電路可分為兩部分旋膳,一是與計算機(jī)ISA總線相連摇展,包括數(shù)據(jù)總線讀寫、地址總線驅(qū)動溺忧、中斷控制信號的產(chǎn)生、存儲器讀寫信號以及I/O端口讀寫信號的引入等盯孙;二是對網(wǎng)卡內(nèi)部的操作鲁森,包括對緩沖RAM的讀寫、對RTL8019AS的控制振惰、讀站地址PROM以及讀自舉ROM等歌溉。ISA總線共有98個信號,但通過對網(wǎng)卡工作原理的分析骑晶,我們可以將接口信號線減至最少痛垛。表2是驅(qū)動RTL8019AS網(wǎng)卡所需的最少的信號線。
4 硬件框圖
系統(tǒng)采用8031作為CPU主芯片梁促,使用32K字節(jié)的外部存儲器62256來存放以太網(wǎng)包(最大可以有1500字節(jié))和串行數(shù)據(jù)晚簇, 8K字節(jié)的2764存放程序挑卫,用75176與485總線通訊。系統(tǒng)的數(shù)據(jù)與地址總線分別與網(wǎng)卡的數(shù)據(jù)與地址總線相連食召。硬件框圖如圖1所示贩普。
5 軟件設(shè)計
對網(wǎng)卡的編程就是對網(wǎng)絡(luò)接口控制器(NIC)RTL8019AS中各種寄存器進(jìn)行編程控制,從而完成數(shù)據(jù)分組的正確發(fā)送和接收付杰。所有程序采用Franclin C51語言編制研脸,具有可讀性強(qiáng),移植性好蚓橡,開發(fā)周期短的特點(diǎn)或怜。即使在代碼的使用效率上,也完全可以和匯編語言相比抠佩。
5.1 主程序
主程序可分為網(wǎng)絡(luò)通訊和串行通訊兩部分归衫。網(wǎng)絡(luò)通訊過程又可分為網(wǎng)卡初始化、發(fā)送控制和接收控制等三部分姻蚓。主程序框圖如圖2所示宋梧。
5.2 網(wǎng)卡初始化過程
對網(wǎng)卡的初始化就是對相關(guān)寄存器進(jìn)行初始化。這些寄存器包括CR狰挡、DCR捂龄、RBCR、PSTART加叁、PSTOP倦沧、
(1)CR=0x21:選擇頁0寄存器,將NIC處于離線狀態(tài)烧给;
(2)DCR=0x88:8位內(nèi)存訪問燕偶,正常工作方式;
(3)RBCR0=0憔剂,RBCR1=0:遠(yuǎn)程DMA操作時傳遞字節(jié)數(shù)清零摆螟;
(4)RCR=0xc0:接收到的幀存入緩沖環(huán);
(5)TCR=0xe2:環(huán)路測試狀態(tài)艳拿;
(6)PSTART=0x4c蒜恶,PSTOP=0x80:構(gòu)造緩沖環(huán);
(7)ISR=0xff:中斷寄存器清零;
(8)IMR=0x00:屏蔽所有的中斷车崔;
(9)CR=0x61:選擇頁1巫紧;
(10)設(shè)置網(wǎng)卡地址PAR0-PAR5;
(11)設(shè)置多址寄存器MAR0-MAR5豆蝠;
(12)CURR=0x4d:初始化當(dāng)前頁寄存器蓖社;
(13)CR=0x22:選擇頁1,正常工作狀態(tài)赛羡;
(14)TCR=0XE0:發(fā)送器正常工作狀態(tài)衍止;
5.3 發(fā)送控制過程
在網(wǎng)絡(luò)中,幀傳輸?shù)倪^程就是發(fā)送方將待發(fā)送的數(shù)據(jù)按幀格式要求封裝成幀词祝,然后通過網(wǎng)卡發(fā)送到網(wǎng)絡(luò)的傳輸線上园担。發(fā)送程序框圖如圖3所示。
5.4 接收控制過程
幀的接收過程分為兩步:第一步由本地DMA將幀存入接收緩沖環(huán)中枯夜;第二步由遠(yuǎn)程DMA將接收緩沖環(huán)中的幀讀入內(nèi)存弯汰。即將網(wǎng)絡(luò)上的數(shù)據(jù)幀接收并緩存在網(wǎng)卡的接收緩沖環(huán)中,然后由主機(jī)程序?qū)⒕彺嬖诰彌_環(huán)中的幀讀走并存入內(nèi)存中湖雹。
幀的接收工作由網(wǎng)卡自動完成咏闪,只需對與相關(guān)的寄存器如PSTART、PSTOP摔吏、CURR和BNRY進(jìn)行適當(dāng)?shù)某跏蓟纯伞?
幀讀入較幀接收要復(fù)雜一些鸽嫂。首先必須初始化相應(yīng)的寄存器RSAR、RBCR征讲,然后再啟動遠(yuǎn)程DMA讀操作和主機(jī)程序的讀端口操作据某。
以下是接收數(shù)據(jù)幀的子程序,為了獲得數(shù)據(jù)長度诗箍,我們先讀入18個字節(jié)的數(shù)據(jù)癣籽,然后根據(jù)有效數(shù)據(jù)的長度將幀完整讀入。為了啟動遠(yuǎn)程DMA讀操作滤祖,應(yīng)該令CR=0AH筷狼,遠(yuǎn)程DMA將從接收緩沖環(huán)的DMA地址處讀入1字節(jié)并送往I/O數(shù)據(jù)端口,由主機(jī)程序讀入內(nèi)存走木。這一過程將一直持續(xù)到RBCR寄存器為0蛛惜。
5.5 串口通訊子程序
為實(shí)現(xiàn)數(shù)據(jù)文件的串口傳輸編制了一個串口通訊協(xié)議,該協(xié)議由引導(dǎo)幀敢添、長度幀、數(shù)據(jù)幀和確認(rèn)幀等組成叁乍。其中引導(dǎo)幀是用于同步每一包數(shù)據(jù)的引導(dǎo)頭季训,長度幀是這一包數(shù)據(jù)的總長度,數(shù)據(jù)幀是其中的數(shù)據(jù)信息,確認(rèn)幀是接收方對發(fā)送方的回應(yīng)肝庸。每幀數(shù)據(jù)由16個字節(jié)組成锡跺,每幀的第14個字節(jié)為標(biāo)志位,第15字節(jié)為校驗(yàn)位吓死。標(biāo)志位中有2位幀標(biāo)志位渴甜,3位序號位;校驗(yàn)采用和校驗(yàn)普晌,只計算0-13字節(jié)顶猜,溢出值舍去。在發(fā)送方有數(shù)據(jù)發(fā)送時痘括,先檢測線路是否空閑长窄,如線路空閑則向接收方發(fā)送“請求發(fā)送數(shù)據(jù)”命令幀。接收機(jī)收到后纲菌,如準(zhǔn)備就緒挠日,則回送“可以發(fā)送”的確認(rèn)
6 結(jié)束語
利用8位單片機(jī)8031驅(qū)動ISA總線網(wǎng)卡,實(shí)現(xiàn)串口設(shè)備通過以太網(wǎng)進(jìn)行通訊女器,可以方便口迟、可靠、低廉地將數(shù)據(jù)傳輸?shù)竭h(yuǎn)端設(shè)備巨脚。而且保蒲,通過串口設(shè)備與以太網(wǎng)的相連,可以很好的解決多種工業(yè)總線的系統(tǒng)集成問題敢弟,同時也大大豐富了工業(yè)總線的體系贼卿,促使其向更高層次發(fā)展⊥闭瘢可以預(yù)計彬率,小型串口設(shè)備與以太網(wǎng)相連將帶來一場新的技術(shù)浪潮。
聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng)怯糠,轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享署隔,并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)妒穷,也不構(gòu)成任何其他建議。本站部分作品是由網(wǎng)友自主投稿和發(fā)布贿妹、編輯整理上傳橡舟,對此類作品本站僅提供交流平臺,不為其版權(quán)負(fù)責(zé)芯急。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻勺届、圖片、文字如涉及作品版權(quán)問題娶耍,請第一時間告知免姿,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容,以保證您的權(quán)益伺绽!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn养泡。
- 暫無反饋
編輯推薦
- 2025新年特刊:打造新質(zhì)生產(chǎn)力姓纲,智啟未來新篇章
- 定義制造業(yè)未來的數(shù)控加工中心技術(shù)專題
- 航空航天及交通領(lǐng)域先進(jìn)制造技術(shù)應(yīng)用專題
- 解碼消費(fèi)電子產(chǎn)品生產(chǎn)的數(shù)字化之路技術(shù)專題
- 精密智能機(jī)床,助力制造升級技術(shù)專題
- 汽車輕量化驅(qū)動下的零部件加工應(yīng)用專題
- 高性能銑刀實(shí)現(xiàn)高精加工生產(chǎn)技術(shù)專題
- 航空航天發(fā)動機(jī)解決方案專題
- 高效齒輪加工生產(chǎn)技術(shù)方案專題
- 金屬加工液的性能不止?jié)櫥夹g(shù)應(yīng)用專題