版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
應用程序設計實驗第1頁,共41頁,2023年,2月20日,星期六串口通信實驗【實驗目的】1.通過實驗了解Linux系統(tǒng)中S3C2410串行口功能單元;2.通過實驗了解S3C2410上Linux的串行通訊?!緦嶒炘O備】
硬件:EDUKIT---III實驗平臺,S3C2410核心子板,EmbestJTAG仿真器套件,PC機。軟件:EmbestIDE集成開發(fā)環(huán)境,CygwinUnix模擬平臺,arm-linux-gcc編譯工具鏈,WindowsXP操作系統(tǒng),EmbestOnlineFlashProgrammerforARM編程器?!緦嶒瀮热荨繉W習和掌握S3C2410串行通訊(UART)單元的相關寄存器功能。學習和掌握Linux的串行通訊單元的設置和基本操作。2第2頁,共41頁,2023年,2月20日,星期六串口通信實驗【實驗原理】和所有設備一樣,Linux也是通過設備文件來訪問串口,即在訪問時打開相應設備文件。S3C2410x處理器內部共有三個UART單元,分別都提供了Linux驅動,串行接口UART0、UART1和UART2分別對應設備文件/dev/ttyS0、/dev/ttyS1和/dev/ttyS2。1、串口操作函數(shù)open 用于打開串口設備close 用于關閉串口設備read 用于從串口設備上讀取數(shù)據(jù)write 用于往串口設備上寫數(shù)據(jù)ioctl 用于串口設備除讀寫外的控制操作3第3頁,共41頁,2023年,2月20日,星期六串口通信實驗2、串口設置函數(shù)串口通訊里termios.h是個很重要的頭文件。分別使用tcgetattr()和tcsetattr()函數(shù)可以獲取核設置串口屬性。
tcgetattr(int__fd,structtermios*__termios_p)tcsetattr(int__fd,int__optional_actions,__conststructtermios*__termios_p)其中termios是結構termios形式的數(shù)據(jù)結構,用于存放串口屬性:structtermios{tcflag_tc_iflag; /* 輸入模式標志*/tcflag_tc_oflag; /* 輸出模式標志*/tcflag_tc_cflag; /* 控制模式標志*/tcflag_tc_lflag; /* 本地模式標志*/cc_tc_line;/*linediscipline*/cc_tc_cc[NCCS]; /* 控制特性*/speed_tc_ispeed; /* 輸入速度*/speed_tc_ospeed; /* 輸出速度*/}4第4頁,共41頁,2023年,2月20日,星期六串口通信實驗對串口屬性的設置主要是對c_cflag參數(shù)的不同位進行與或操作。波特率設置使用函數(shù)cfsetispeed核cfsetospeed,這兩個函數(shù)分別設置入口端和出口端的速率,它們也是通過改變structtermios結構實現(xiàn)。
cfsetispeed(structtermios*__termios_p,speed_t__speed)cfsetospeed(structtermios*__termios_p,speed_t__speed)設置波特率SerialPara.c_cflag|=Baud5第5頁,共41頁,2023年,2月20日,星期六串口通信實驗設置數(shù)據(jù)流控制
termios.c_cflag&=~CRTSCTS//不使用流控termios.c_cflag|=CRTSCTS//使用硬件流控termios.c_cflag|=IXON|IXOFF|IXANY//使用軟件流控設置數(shù)據(jù)位termios.c_cflag&=~CSIZE//無數(shù)據(jù)位termios.c_cflag|=CS8//8位數(shù)據(jù)位termios.c_cflag|=CS7//7位數(shù)據(jù)位......設置奇偶校驗位termios.c_cflag&=~PARENB//無校驗位(關奇偶校驗)termios.c_cflag|=PARENB//打開奇偶校驗termios.c_cflag|=PARODD//奇校驗位termios.c_cflag|=PARENB//打開奇偶校驗termios.c_cflag&=~PARODD//偶校驗位(關PARODD)6第6頁,共41頁,2023年,2月20日,星期六串口通信實驗【實驗步驟】1. 準備實驗環(huán)境使用EduKit2410目標板附帶的串口線連接目標板上UART0和PC機串口COM1.使用EduKit2410目標板附帶的交叉網(wǎng)線連接目標板NET1和PC機網(wǎng)絡接口。2. 串口/網(wǎng)絡設置在PC機上運行Windows附件中自帶的超級終端串口通信程序(波特率115200、1位停止位、無校驗位、無硬件流控制);或者使用其它串口通信程序。運行TFTP服務器程序tftpd32.exe,進行各種工作狀態(tài)、權限以及本地tftp工作目錄的設置,默認狀態(tài)下可以直接進行工作,本地tftp工作目錄即當前目錄??赏ㄟ^點擊Settings按鈕修改主目錄(這里設為/home/app)7第7頁,共41頁,2023年,2月20日,星期六3.實驗操作過程編譯應用程序
8第8頁,共41頁,2023年,2月20日,星期六1.啟動PC機上超級終端串口通信程序(串口線連接目標板上的UART0和PC機串口COM1)2.ViVi,linux,root.cramfs分別燒錄在1-5,6-17,18---35扇區(qū)(若已燒錄好,不用再燒)3.再加電重新啟動目標板,可以看到有cramfs文件系統(tǒng)的linux內核正常運行.然后進入/var/目錄,在PC機上運行TFTP服務器,選擇工作目錄為/home/app.下載測試程序,修改文件屬性:9第9頁,共41頁,2023年,2月20日,星期六串口通信實驗執(zhí)行下載到Linux系統(tǒng)的test-uart測試程序,通過串口輸入字符,觀察返回結果
(ch=你輸入的字符)10第10頁,共41頁,2023年,2月20日,星期六第8章應用程序設計實驗---2---IIC總線接口實驗11第11頁,共41頁,2023年,2月20日,星期六IIC總線接口實驗【實驗目的】1. 掌握IIC串行數(shù)據(jù)通信協(xié)議;2. 掌握S3C2410處理器的IIC總線接口控制器的使用;3. 通過實驗初步了解LinuxIIC接口驅動程序設計?!緦嶒炘O備】
硬件:EDUKIT---III實驗平臺,S3C2410核心子板,EmbestJTAG仿真器套件,PC機。軟件:EmbestIDE集成開發(fā)環(huán)境,CygwinUnix模擬平臺,arm-linux-gcc編譯工具鏈,WindowsXP操作系統(tǒng),EmbestOnlineFlashProgrammerforARM編程器?!緦嶒瀮热荨烤帉慡3C2410IIC總線接口的Linux算法驅動程序,并編譯進Linux內核,為EEPROM,8LED和鍵盤實驗作準備12第12頁,共41頁,2023年,2月20日,星期六IIC總線接口實驗【實驗原理】IIC總線為同步串行數(shù)據(jù)傳輸總線,由兩根線組成,一根串行數(shù)據(jù)線(SDA)和一根串行時鐘線(SCL)。其標準模式總線傳輸位速率為0~100kb/s,增強模式將總線傳輸位速率增加到4倍,可達400kb/s現(xiàn)最高已達4Mb/s,并且向下兼容。IIC總線驅動能力為400pF(最大電容值),整個IIC系統(tǒng)的總線電容不可超過此值。IIC總線可構成多主和主從系統(tǒng)。在多主系統(tǒng)結構中,系統(tǒng)通過硬件或軟件仲裁獲得總線控制使用權。應用系統(tǒng)中IIC總線多采用主從結構,即總線上只有一個主控節(jié)點,總線上的其它設備都作為從設備。IIC總線上的設備尋址由器件地址接線決定,與總線相連的每個器件都對應一個特定的地址,采用軟件尋址方式,并且通過訪問地址最低位來控制讀寫方向。1.IIC數(shù)據(jù)傳輸格式(書P236)2.S3C2410處理器IIC接口(書P237)13第13頁,共41頁,2023年,2月20日,星期六IIC總線接口實驗
IIC驅動程序設計在kernel/drivers/i2c 的驅動程序目錄下,已經(jīng)有了一些IIC的驅動程序,其中包括LinuxIIC的字符設備驅動程序(i2c-dev.c)和IIC主驅動程序(i2c-core.c)。分析一下i2c-dev.c和i2c-core.c源程序發(fā)現(xiàn),i2c-dev.c已實現(xiàn)了字符設備系統(tǒng)調用的過程和IIC適配器的管理,i2c-core.c卻實現(xiàn)了IIC接口操作的抽象層。分析其他更底層的驅動程序,發(fā)現(xiàn)驅動程序的一般調用過程為:系統(tǒng)調用IIC設備驅動程序IIC驅動程序適配管理器IIC算法驅動程序在IIC驅動程序目錄下,沒有對應S3C2410IIC總線接口的驅動程序,因此我們需要為S3C2410IIC總線接口編寫專用的算法驅動程序,以下內容一步一步來進行介紹:
(書P240—P251)14第14頁,共41頁,2023年,2月20日,星期六IIC總線接口實驗
IIC驅動程序配置與編譯編寫完s3c2410IIC總線接口算法驅動程序后,頭文件源程序文件分別保存為i2c-algo-s3c2410.h和i2c-algo-s3c2410.c,放在$WORKDIR/kernel/dirvers/i2c目錄下(已經(jīng)通過的源代碼程序存放于dirvers/0602_driver-i2c)。要編譯進Linux內核,還要對配置文件和Makefile文件腳本進行修改。1、修改內核i2c驅動配置文件打開$WORKDIR/kernel/drivers/i2c/config.in腳本文件,編輯添加下面幾行:15第15頁,共41頁,2023年,2月20日,星期六IIC總線接口實驗dep_tristate'I2Cdeviceinterface'CONFIG_I2C_CHARDEV$CONFIG_I2C<--這一句后插入以下行:
if["$CONFIG_ARCH_S3C2410"="y"];thendep_tristate'SamsungS3C2410I2CAlgorithm'CONFIG_I2C_S3C2410_ALGO$CONFIG_I2C_CHARDEV$CONFIG_I2Cif["$CONFIG_I2C_S3C2410_ALGO"!="n"];thendep_tristate'SamsungS3C2410I2CAdapter'CONFIG_I2C_S3C2410_ADAP$CONFIG_I2C_S3C2410_ALGOfifi...16第16頁,共41頁,2023年,2月20日,星期六IIC總線接口實驗2、修改Makefile文件打開$WORKDIR/kernel/drivers/i2c/Makefile文件,在適當位置編輯添加下面一行,使用編譯包括IIC驅動程序:obj-$(CONFIG_I2C)+=i2c-core.oobj-$(CONFIG_I2C_CHARDEV)+=i2c-dev.o<--這一句后編輯添加以下1行:
obj-$(CONFIG_I2C_S3C2410_ALGO)+=i2c-algo-s3c2410.o3、修改$WORKDIR/kernel/Makefile文件在適當位置(在有“DRIVERS-”開始行的附近)添加下面一行加入i2c設備,使內核啟動時檢查需要不需要加載i2c驅動程序:DRIVERS-$(CONFIG_I2C)+=drivers/i2c/i2c.o這樣,如果在內核配置中選擇了chardevices->I2Csupport->I2Csupport->I2Cdeviceinterface->SamsungS3C2410I2CAlgorithm均選擇y選項(因為算法程序中同時提供適配器程序,所以SamsungS3C2410I2CAdapter選項可以不選);這樣,i2c驅動將會被編譯進內核;
17第17頁,共41頁,2023年,2月20日,星期六IIC總線接口實驗【實驗步驟】1. 準備實驗環(huán)境使用EduKit2410目標板附帶的串口線連接目標板上UART0和PC機串口COM1.2. 串口/網(wǎng)絡設置在PC機上運行Windows附件中自帶的超級終端串口通信程序(波特率115200、1位停止位、無校驗位、無硬件流控制);或者使用其它串口通信程序。18第18頁,共41頁,2023年,2月20日,星期六3.實驗操作過程復制i2c-algo-s3c2410.c/h到../i2c/下19第19頁,共41頁,2023年,2月20日,星期六修改內核i2c驅動配置文件config.in(注意標記位置)$WORKDIR\kernel\drivers\i2c\config.in20第20頁,共41頁,2023年,2月20日,星期六修改$WORKDIR/kernel/drivers/i2c/Makefile文件21第21頁,共41頁,2023年,2月20日,星期六修改$WORKDIR/kernel/Makefile文件22第22頁,共41頁,2023年,2月20日,星期六Makexconfig23第23頁,共41頁,2023年,2月20日,星期六設置24第24頁,共41頁,2023年,2月20日,星期六25第25頁,共41頁,2023年,2月20日,星期六編譯進內核26第26頁,共41頁,2023年,2月20日,星期六1.啟動PC機上超級終端串口通信程序(串口線連接目標板上的UART0和PC機串口COM1)2.ViVi,linux,分別燒錄在1-5,6-17扇區(qū)3.再加電重新啟動目標板,可以看到linux內核正常運行.然后進入/dev/目錄,查看IIC接口驅動程序27第27頁,共41頁,2023年,2月20日,星期六第8章應用程序設計實驗---3---網(wǎng)絡應用程序實驗28第28頁,共41頁,2023年,2月20日,星期六網(wǎng)絡應用程序實驗【實驗目的】掌握Linux下的網(wǎng)絡接口編程【實驗設備】硬件:硬件:EduKit2410系統(tǒng),EmbestJTAG仿真器,PC機;軟件:Windows下的cygwin開發(fā)環(huán)境?!緦嶒瀮热荨炕贚inux下的網(wǎng)絡接口編寫應用程序,實現(xiàn)一個簡單的客戶機/服務器應用,服務器端程序在Linux下運行,客戶機程序在PC機上運行,服務器程序接收客戶機發(fā)送過來的字符串并回傳給客戶端,同時將接收到的字符串打印到串口終端。在Linux系統(tǒng)下映射主機目錄進行程序的調試。29第29頁,共41頁,2023年,2月20日,星期六網(wǎng)絡應用程序實驗【實驗原理】網(wǎng)絡接口應用程序編寫在TCP/IP網(wǎng)絡應用中,通信的兩個進程間相互作用的主要模式是客戶/服務器模式(Client/Servermodel),即客戶向服務器發(fā)出服務請求,服務器接收到請求后,提供相應的服務,這種方式隱含了在建立客戶機/服務器間通信的非對稱性??蛻?服務器模型工作時要求有一套為客戶機和服務器所共識的協(xié)議,保證服務能夠被提供(或被接收),在協(xié)議中,有主從機之分。通常服務器在某個地址監(jiān)聽客戶的請求,一旦客戶提出連接請求,服務器將從休眠狀態(tài)被喚醒,為客戶提供服務。當服務器和應用程序需要和其他進程通信時就會創(chuàng)建套接口。套接口(socket)使用一般分為分配套接口和初始化、完成連接的系統(tǒng)調用、傳送數(shù)據(jù)以及關閉等幾個步驟。分配套接口和初始化套接口是數(shù)據(jù)通信通道,在兩個進程通過套接口建立連接后,會使用套接口描述字來讀寫數(shù)據(jù)。對套接口來說,通常使用的協(xié)議和套接口類型是AF_INET(ARPA網(wǎng)際協(xié)議)以及SOCK_STREAM類型。流式套接字(SOCK_STREAM)提供了一個面向連接、可靠的數(shù)據(jù)傳輸服務,數(shù)據(jù)無差錯、無重復地發(fā)送,且按發(fā)送順序接收。內設流量控制,避免數(shù)據(jù)流超限;數(shù)據(jù)被看作是字節(jié)流,無長度限制。文件傳送協(xié)議(FTP)即使用流式套接字。當一個套接字用socket創(chuàng)建后,存在一個名字空間(地址族),但它沒有被命名。bind將套接字地址(包括本地主機地址和本地端口地址)與所創(chuàng)建的套接字號聯(lián)系起來。地址在建立套接字通信過程中起著重要作用。30第30頁,共41頁,2023年,2月20日,星期六網(wǎng)絡應用程序實驗完成連接的系統(tǒng)調用當創(chuàng)建了套接口并且使用bind把它和一個進程關聯(lián)起來后,服務器類型的進程可以調用listen函數(shù)來監(jiān)聽接入的套接口連接。當一個接入信號抵達監(jiān)聽套接口,會被排入隊列直到服務器程序準備好處理為止。當服務器準備處理一個新的連接時,使用系統(tǒng)調用accept從套接口的隊列中檢索一個掛起的信號。accept會返回一個新的套接口描述符,用來進行客戶和服務器的通信,原來的套接口繼續(xù)監(jiān)聽新的接入信號。客戶則使用系統(tǒng)調用connect來把本地套接口與遠程服務聯(lián)系起來,該調用的典型用法是為運行在遠程計算機上的服務器進程指定本機的信息。傳送數(shù)據(jù)在傳送數(shù)據(jù)階段,recv用來接收從已經(jīng)連接的套接口傳來的信息,這個套接口已經(jīng)通過調用connect和另一個套接口連接起來了。系統(tǒng)調用send用來通過套接口向其他程序傳遞數(shù)據(jù),客戶端和服務器分別使用send來向遠程服務進程傳送服務請求和向客戶端返回數(shù)據(jù)。關閉當用完套接口需要釋放時,通過使用系統(tǒng)調用close來關閉套接口描述符即可。這里沒有對以上系統(tǒng)調用做詳細的使用說明,具體的參數(shù)以及用法請查閱相關書籍和資料
31第31頁,共41頁,2023年,2月20日,星期六網(wǎng)絡應用程序實驗【實驗步驟】1. 準備實驗環(huán)境使用EduKit2410目標板附帶的串口線連接目標板上UART0和PC機串口COM1.使用EduKit2410目標板附帶的交叉網(wǎng)線連接目標板NET1和PC機網(wǎng)絡接口.2. 串口/網(wǎng)絡設置在PC機上運行Windows附件中自帶的超級終端串口通信程序(波特率115200、1位停止位、無校驗位、無硬件流控制);或者使用其它串口通信程序。在PC機上運行TFTP服務器tftpd32.exe選擇工作目錄為/home/app。。32第32頁,共41頁,2023年,2月20日,星期六3. 實驗操作過程1)運行cygwin.進入網(wǎng)絡服務實驗程序所在目錄。執(zhí)行以下命令編譯server測試程序:$source/tmp/edukit-2410/set_env_linux.sh
//Linux
編譯環(huán)境變量設置$cd$WORKDIR/examples/0302_test-net/$makeclean$makeinstall2)下載測試程序.同時拷貝執(zhí)行文件到調試目錄,編譯好測試程序后,啟動目標板的Linux操作系統(tǒng),通過以太網(wǎng)使用tftp下載剛編譯好的運行于開發(fā)板Linux的server測試程序,保存到/var目錄下。在Linux的輸入終端里輸入如下命令。#cd/var#tftp-g0-r./server-l./server3)修改文件屬性.修改測試程序的屬性,使其擁有可執(zhí)行屬性,執(zhí)行以下命令:#chmod+xserver33第33頁,共41頁,2023年,2月20日,星期六4. 觀察實驗結果1在Linux終端窗口執(zhí)行以下命令運行服務器程序:#./serverserverlistening…waitforconnect…命令執(zhí)行后,出現(xiàn)“serverlistening…waitforconnect…”表示服務器程序進入監(jiān)聽狀態(tài),等待客戶端程序的連接請求。2) 在PC機cygwin上運行客戶端程序,執(zhí)行以下命令,連接服務器:$./client.exedefaultlocalhost:<default_ip> ,oryoucaninputoneafterthecommand.Sendtoserver…Defaultteststring.Responsefromserver…Defaultteststring.以上為客戶端連接服務器后的顯示。你可以使用默認服務器ip,也可以自己輸入“./client(pc_ip)”??蛻舳顺绦蜻B接服務器后,首先發(fā)送字符串“Defaultteststring.”到服務器,服務器接受到并打印到串口,再將字符串回傳給客戶端,客戶端接受到后再打印到顯示終端。
34第34頁,共41頁,2023年,2月20日,星期六實驗操作過程編譯測驗程序
35第35頁,共41頁,2023年,2月20日,星期六1.串口線連接目標板上的UART0和PC機串口COM12.啟動PC機上超級終端串口通信程序,運行TFTP服務器程序tftpd32.exe.3.ViVi燒錄在1—
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2《再別康橋》 公開課一等獎創(chuàng)新教學設計
- 徐州醫(yī)科大學《鐵道電氣化概論》2023-2024學年第二學期期末試卷
- 東北林業(yè)大學《動物生物制品學A》2023-2024學年第二學期期末試卷
- 石家莊學院《小組工作實驗》2023-2024學年第二學期期末試卷
- 浙江宇翔職業(yè)技術學院《企業(yè)運營仿真實驗》2023-2024學年第二學期期末試卷
- 云南司法警官職業(yè)學院《文化文本分析與應用》2023-2024學年第二學期期末試卷
- 2025年視窗防護屏合作協(xié)議書
- 統(tǒng)編版 語文三年級下冊第二單元任務群整體公開課一等獎創(chuàng)新教學設計
- 電火鍋電蒸鍋的市場規(guī)模
- 上海歐華職業(yè)技術學院《專門用途英語(電氣專業(yè)英語)》2023-2024學年第二學期期末試卷
- 江蘇省鹽城市鹿鳴路初級中學2024-2025學年八年級上學期期末考試語文試題(含答案)
- 【物理】《跨學科實踐:制作簡易桿秤》(教學設計)-2024-2025學年人教版(2024)初中物理八年級下冊
- 新蘇教版一年級數(shù)學下冊第六單元《簡單的數(shù)量關系(一)》教案(共2課時)
- 2025年新高考語文模擬考試試卷(五) (含答案解析)
- 教育部《中小學校園食品安全和膳食經(jīng)費管理工作指引》專題培訓
- 北師大版七年級上冊數(shù)學思維導圖全套
- 社會兒童福利院項目可行性研究報告
- 2024年輔警招聘考試試題庫含完整答案(各地真題)
- TCALC 003-2023 手術室患者人文關懷管理規(guī)范
- 腦卒中后吞咽障礙患者進食護理-2023中華護理學會團體標準
- 云南省地圖含市縣地圖矢量分層地圖行政區(qū)劃市縣概況ppt模板
評論
0/150
提交評論