版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《嵌入式系統(tǒng)》專題報告嵌入式系統(tǒng)串口通信接口設(shè)計專業(yè):通信工程班級:通信1001姓名:學(xué)號:嵌入式系統(tǒng)串口通信接口設(shè)計一、緒論嵌入式系統(tǒng)(Embeddedsystem),是一種"完全嵌入受控器件內(nèi)部,為特定應(yīng)用而設(shè)計的專用計算機(jī)系統(tǒng)”,根據(jù)英國電器工程師協(xié)會(U.K.InstitutionofElectricalEngineer)的定義,嵌入式系統(tǒng)為控制、監(jiān)視或輔助設(shè)備、器或用于工廠運作的設(shè)備。與個人計算機(jī)這樣的通用計算機(jī)系統(tǒng)不同,嵌入式系統(tǒng)通常執(zhí)行的是帶有特定要求的預(yù)先定義的任務(wù)。由于嵌入式系統(tǒng)只針對一項特殊的任務(wù),設(shè)計人員能夠?qū)λM(jìn)行優(yōu)化,減小尺寸降低成本。由于嵌入式系統(tǒng)通常進(jìn)行大量生產(chǎn)。所以單個的成本節(jié)約,能夠隨著產(chǎn)量進(jìn)行成百上千的放大。嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對軟硬件進(jìn)行裁剪,滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求。所以,如果能建立相對通用的軟硬件基礎(chǔ),然后在其上開發(fā)出適應(yīng)各種需要的系統(tǒng),是一個比較好的發(fā)展模式。目前的嵌入式系統(tǒng)的核心往往是一個只有幾K到幾十K微內(nèi)核,需要根據(jù)實際的使用進(jìn)行功能擴(kuò)展或者裁減,但是由于微內(nèi)核的存在,使得這種擴(kuò)展能夠非常順利的進(jìn)行。ARM是微處理器行業(yè)的一家知名企業(yè),設(shè)計了大量高性能、廉價、耗能低的RISC處理器、相關(guān)技術(shù)及軟件。技術(shù)具有性能高、成本低和能耗省的特點。適用于多種領(lǐng)域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應(yīng)用等。ARM的商業(yè)模式主要涉及IP的設(shè)計和許可,而非生產(chǎn)和銷售實際的半導(dǎo)體芯片°ARM向合作伙伴網(wǎng)絡(luò)(包括世界領(lǐng)先的半導(dǎo)體公司和系統(tǒng)公司)授予IP許可證。這些合作伙伴可利用ARM的IP設(shè)計創(chuàng)造和生產(chǎn)片上系統(tǒng)設(shè)計,但需要向ARM支付原始IP的許可費用并為每塊生產(chǎn)的芯片或晶片交納版稅。除了處理器IP夕卜,ARM還提供了一系列工具、物理和系統(tǒng)IP來優(yōu)化片上系統(tǒng)設(shè)計。正因為ARM的IP多種多樣以及支持基于ARM的解決方案的芯片和軟件體系十分龐大,全球領(lǐng)先的原始設(shè)備制造商(OEM)都在廣泛使用ARM技術(shù),應(yīng)用領(lǐng)域涉及手機(jī)、數(shù)字機(jī)頂盒以及汽車制動系統(tǒng)和網(wǎng)絡(luò)路由器。當(dāng)今,全球95%以上的手機(jī)以及超過四分之一的電子設(shè)備都在使用ARM技術(shù)。1.1嵌入式linux簡介嵌入式linux是將日益流行的Linux操作系統(tǒng)進(jìn)行裁剪修改,使之能在嵌入式計算機(jī)系統(tǒng)上運行的一種操作系統(tǒng)。嵌入式linux既繼承了Internet上無限的開放源代碼資源,又具有嵌入式操作系統(tǒng)的特性。嵌入式Linux的特點是版權(quán)費免費;購買費用媒介成本技術(shù)支持全世界的自由軟件開發(fā)者提供支持網(wǎng)絡(luò)特性免費,而且性能優(yōu)異,軟件移植容易,代碼開放,有許多應(yīng)用軟件支持,應(yīng)用產(chǎn)品開發(fā)周期短,新產(chǎn)品上市迅速,因為有許多公開的代碼可以參考和移植,實時性能RT_LinuxHardhatLinux等嵌入式Linux支持實時性能穩(wěn)定性好安全性好。Linux的大小適合嵌入式操作系統(tǒng)——Linux固有的模塊性,適應(yīng)性和可配置性,使得這很容易做到。另外,Linux源碼的實用性和成千上萬的程序員熱切期望它用于無數(shù)的嵌入式應(yīng)用軟件中,導(dǎo)致很多嵌入式Linux的出現(xiàn),包括:Embedix,ETLinux,LEM,LinuxRouterProject,LOAF,uCLinux,muLinux,ThinLinux,FirePlug,Linux和PizzaBoxLinux。二硬件電路設(shè)計本設(shè)計是基于三星公司的ARM11芯片(S3C6410芯片)作為主處理器。該CPU是基于ARM1176JZF-S核設(shè)計,支持SD卡啟動,只需將bootloader燒寫至SD卡,就可以從SD卡啟動。完成程序燒寫功能。系統(tǒng)框圖如下:該S3C6410通用異步接收和發(fā)送器(UART)提供了四個獨立的異步串行I/O(SIO)端口。每個異步串行I/O(SIO)端口通過中斷或者直接存儲器存?。―MA)模式來操作。換句話說,UART是通過產(chǎn)生一個中斷或DMA請求,在CPU和UART之間傳輸數(shù)據(jù)的。該UART使用系統(tǒng)時鐘的時間可以支持的比特率最高為115.2kb/s。如果一外部設(shè)備提供ext_uclk0或ext_uclk1,則UART可以以更高的速度運行。每個UART的通道包含了兩個64字節(jié)收發(fā)FIFO存儲器。該S3C6410的UART包括可編程波特率,紅外線(IR)的傳送/接收,一個或兩個停止位插入,5位,6位,7位或8位數(shù)據(jù)的寬度和奇偶校驗。串口寄存器,以通道0為例:寄存器ifeJht設(shè)f寫說明柄始慎oivroo&oco讀,寫LARTifi道口行控制寄存器0x00ICCK0017F0050C4讀.*頑通道??刂萍拇嫫?x0^UFCom0I7FOD50G8淀浦:AR1通道0FIFO控制寄存器0x0功co阿Oi7FOO&OCC讀/寫二IRT遮道口調(diào)制解誠黑<Moden>控制寄存器0x0LTRSTATGDi7FDO5010該二IRT遙道0發(fā)送■/接收狀態(tài)畚存器0x6LERSTATCOI7FDG5014讀:ART通道0接收褚誤狀態(tài)寄存秦0x0IFSTMCOk7F00501S讀HRT通道0FIFO狀恣寄存希0x00IMSr.UDOiVFOOSO1C讀LARTiS道。倜制解周器iModen)狀戀寄存器0i0ITMID0I7FDO502D寫LARTifi道。發(fā)送曖沖身存器一IRXHDDxVF005024讀M通道。接收鍛沖寄存器0x00LBKDIYOLAKT0I7FOO502S詼/■寫退*0波恃展分成奇存器OXOODDL.DIV5LOTO017F00503C讀,寫二認(rèn)T遍道口升頗為槽奇存器0x0000LINTPOCARTDi7FOG503D讀/■寫道遭Q中斷處理寄存評0x0UNT5P00I7FOO5D34謎/寫LAHI通道0中斷源姓理容存器QiO11NIY00x7RX)5038淑■寫心通道。中斷屏蔽新存器0x0三、軟件環(huán)境搭建及系統(tǒng)移植(1)解壓安裝U-boot源代碼(2)解壓安裝Linux內(nèi)核源代碼(3)解壓安裝目標(biāo)文件系統(tǒng)(4)解壓安裝嵌入式圖形系統(tǒng)qtopia源代碼(5)配置和編譯U-boot(6)配置和編譯內(nèi)核(Kernel)(7)制作目標(biāo)板文件系統(tǒng)映象(8)下載U-boot(9)下載linux內(nèi)核(10)下載qtopia圖形界面四、串口通信應(yīng)用程序設(shè)計要進(jìn)行串口通訊,首先要打開串口設(shè)備,使用Linux下的open函數(shù)即可打開,打開串口設(shè)備后,還需要用tcsetattr來設(shè)置波特率等串口屬性,代碼如下所示:intopenSerialPort(){intfd=-1;constchar*devName="/dev/ttySAC2";fd=::open(devName,O_RDWR|O_NONBLOCK);if(fd<0){return-1;}termiosserialAttr;memset(&serialAttr,0,sizeofserialAttr);serialAttr.c_iflag=IGNPAR;serialAttr.c_cflag=B115200|HUPCL|CS8|CREAD|CLOCAL;serialAttr.c_cc[VMIN]=1;if(tcsetattr(fd,TCSANOW,&serialAttr)!=0){return-1;}returnfd;上述代碼中打開的串口設(shè)備文件名為/dev/ttySAC2,并設(shè)置波特率為115200,然后將Databits改為8。要對串口設(shè)備進(jìn)行讀寫,使用Linux標(biāo)準(zhǔn)i/o函數(shù)read和“abcd”,4)往串口設(shè)備寫abcd時,PC端的終端上會顯示abcd,同理,當(dāng)在PC端上輸入字符時,使用read(fd,buff,sizeofbuff)來讀取PC端發(fā)送過來的字符。在使用open方法打開串口并設(shè)置好屬性后,可以使用Qt的類QSocketNotifier來監(jiān)聽串口是否有數(shù)據(jù)可讀,它是事件驅(qū)動的,配合Qt的signal/slot機(jī)制,當(dāng)有數(shù)據(jù)可讀時,QSocketNotifier就會發(fā)射ativated信號,你只需要創(chuàng)建一個slot連接到該信號即可,代碼如下所示:m_fd=openSerialPort();if(m_fd<0){QMessageBox::warning(this,tr("Error"),tr("Failtoopenserialport!"));return;}m_notifier=newQSocketNotifier(m_fd,QSocketNotifier::Read,this);connect(m_notifier,SIGNAL(activated(int)),this,SLOT(remoteDataIncoming()));在上述代碼中,我們首先使用上面封裝的openSerialPort函數(shù)打開串口并配置串口屬性,接著我們用m_fd和QSocketNotifier::Read作為參數(shù)構(gòu)造了一個QSocketNotifier的實例,QSocketNotifier::Read參數(shù)表示我們需要關(guān)U?口3旦洲舜撈、*壩炳QSockeiNoWer聘查saavaied而血席嫡四remoieDaorIncomingsoi、llK4^ffl^?3'remoieDaorIncomingsoi訪^sffl?!?101湖remoieDaorIncommgsoi、CK}s^?bss><>亟-B、)D?WMred?B1冊口萍ffl、澆訓(xùn)恭萍ffla涕四郁BIFr-voidTMainFormrrremoieDaarIncomingo{charc;if(read(mlfd、p?psizeofC)IT1){QMessageBOX’wamingMhis、ircElror--)、-reReceiveerror--));rerm;)mlrecQveEdrvinseHQsiringscharn)));)宙丑designerH*^id-H患郁@1-QVQiops噸條4designerH*、田^沛豐淵日瑪淵揄3|1|患郁@1、肄吉sffl矍MffldesignerH**^id-sez.a-port95可3卅郁@1、H+郁劇炳?4?m命甘mamlformlbase.uisui艮十(KS^HSS艮十fflBffi宜訪薄uicBn、*mC++畚)創(chuàng)建三個源代碼文件,一個是頭文件main_form.h,一個是源代碼文件main_form.cpp,一個是main.cpp。Main.cpp,代碼如下:#include"main_form.h"#include<qtopia/qpeapplication.h>QTOPIA_ADD_APPLICATION("serialport”,TMainForm)QTOPIA_MAINmain_form.h代碼如下:#if!defined(__MAIN_FORM_H__)#define__MAIN_FORM_H__#include"main_form_base.h"#include<qsocketnotifier.h>classTMainForm:publicTMainFormBase{Q_OBJECTpublic:TMainForm(QWidget*parent=0,constchar*name=0,WFlagsf=WType_TopLevel);virtual~TMainForm();private:intopenSerialPort();privateslots:voidsendButtonClicked();voidremoteDataIncoming();private:intm_fd;QSocketNotifier*m_notifier;};#endifMain_form.cpp代碼如下:TMainForm::TMainForm(QWidget*parent,constchar*name,WFlf):TMainFormBase(parent,name,f),m_notifier(0){m_fd=openSerialPort();if(m_fd<0){QMessageBox::warning(this,tr("Error"),tr("Failtoopenserialport!"));return;}m_notifier=newQSocketNotifier(m_fd,QSocketNotifier::Read,this);connect(m_notifier,SIGNAL(activated(int)),this,SLOT(remoteDataIncoming()));}TMainForm::~TMainForm(){if(m_notifier){deletem_notifier;m_notifier=0;}if(m_fd>=0){::close(m_fd);m_fd=-1;}}voidTMainForm::sendButtonClicked()QStringtext(m_sendEdit->text())if(text.isEmpty()){return;}::write(m_fd,text.latin1(),text.length());m_sendEdit->setText("");}intTMainForm::openSerialPort(){intfd=-1;constchar*devName="/dev/ttySAC2";fd=::open(devName,O_RDWR|O_NONBLOCK);if(fd<0){return-1;}termiosserialAttr;memset(&serialAttr,0,sizeofserialAttr);serialAttr.c_iflag=IGNPAR;serialAttr.c_cflag=B115200|HUPCL|CS8|CREAD|CLOCAL;serialAttr.c_cc[VMIN]=1;if(tcsetattr(fd,TCSANOW,&serialAttr)!=0){return-1;}returnfd;}voidTMainForm::remoteDataIncoming(){charc;if(read(m_fd,&c,sizeofc)!=1){QMessageBox::warning(this,tr("Error"),tr("Receiveerror!"));return;}m_receiveEdit->insert(QString(QChar(c)));}交叉編譯serialport程序編譯完成后,在serialport下生成了serialport可執(zhí)行文件,把它拷貝到SD卡,然后將SD插到6410開發(fā)板上,在串口終端上輸入以下命令將可執(zhí)行文件拷貝到開發(fā)板上的/opt/Qtopia
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 活動招待晚宴方案策劃(3篇)
- 城市圍墻施工方案(3篇)
- 罕見腫瘤的個體化治療藥物相互作用管理策略探討
- 2026屆甘肅省甘谷縣第一中學(xué)英語高三第一學(xué)期期末聯(lián)考模擬試題含解析
- 2026年甘肅慶陽環(huán)縣數(shù)字就業(yè)基地在線客服崗位1月招聘30人備考題庫及答案詳解(奪冠系列)
- 罕見腫瘤的個體化治療治療目標(biāo)設(shè)定原則與患者個體差異
- 投融資財務(wù)制度
- 財富公司財務(wù)制度
- 市政環(huán)衛(wèi)財務(wù)制度
- 現(xiàn)金流水財務(wù)制度
- GB/T 9706.266-2025醫(yī)用電氣設(shè)備第2-66部分:助聽器及助聽器系統(tǒng)的基本安全和基本性能專用要求
- (一模)株洲市2026屆高三年級教學(xué)質(zhì)量統(tǒng)一檢測地理試卷(含答案詳解)
- 2026年企業(yè)級云服務(wù)器采購合同
- 2026廣西桂林醫(yī)科大學(xué)人才招聘27人備考題庫(第一批)及參考答案詳解一套
- 2026年度黑龍江省生態(tài)環(huán)境廳所屬事業(yè)單位公開招聘工作人員57人備考題庫及答案詳解一套
- 2025安徽省中煤三建國際公司機(jī)關(guān)工作人員內(nèi)部競聘31人筆試歷年參考題庫附帶答案詳解
- 2026國家國防科技工業(yè)局所屬事業(yè)單位第一批招聘62人筆試參考題庫及答案解析
- 北京2025年北京教育科學(xué)研究院公開招聘筆試歷年參考題庫附帶答案詳解
- 2025至2030中國谷氨酸和味精行業(yè)深度研究及發(fā)展前景投資評估分析
- 人教版高二化學(xué)上冊期末真題試題題庫試題附答案完整版
- 生產(chǎn)樣品合同范本
評論
0/150
提交評論