<wbr id="ede8e"></wbr><bdo id="ede8e"><var id="ede8e"><optgroup id="ede8e"></optgroup></var></bdo>
    1. <sub id="ede8e"></sub>
    2. <sub id="ede8e"></sub>
    3. 18禁无遮挡啪啪无码网站,真人无码作爱免费视频,2018年亚洲欧美在线v,国产成人午夜一区二区三区 ,亚洲精品毛片一区二区,国产在线亚州精品内射,精品无码国产污污污免费,国内少妇人妻偷人精品
      首頁 > 文章中心 > 文件傳輸

      文件傳輸

      前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇文件傳輸范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

      文件傳輸范文第1篇

      1、首先,點擊手機(jī)里面的微信APP進(jìn)入。

      2、進(jìn)入到微信主頁面之后,點擊右上角的搜索按鈕。

      3、然后,在搜索框輸入文件傳輸助手,然后點擊下面的文件傳輸助手。就找到了文件傳輸助手。

      4、通過文件傳輸助手,可以發(fā)送文件、圖片等到微信上,這些消息也可以同步到電腦微信上。

      (來源:文章屋網(wǎng) )

      文件傳輸范文第2篇

      關(guān)鍵詞:文件傳輸服務(wù)器;系統(tǒng)設(shè)計;模型設(shè)計;模塊化

      1 引言

      現(xiàn)在網(wǎng)絡(luò)中所傳輸?shù)臄?shù)據(jù)無非就是小的數(shù)據(jù)包或是大的媒體或文件流數(shù)據(jù)。通過研究一個具有實際功能的文件傳輸服務(wù)器,對于理解服務(wù)器通信軟件的設(shè)計具有一定意義。因為文件傳輸服務(wù)器既可以傳輸小的信息數(shù)據(jù),也可以傳輸大的文件數(shù)據(jù)流。本文主要探討了文件傳輸服務(wù)器的設(shè)計關(guān)鍵技術(shù)。

      2 系統(tǒng)設(shè)計要求和設(shè)計思路

      文件傳輸范文第3篇

      1、首先在手機(jī)桌面上點擊打開微信”。

      2、進(jìn)入微信的主頁面,點擊搜索欄,然后輸入文件”就會自動跳出搜索項,點擊下方的文件傳輸助手”。

      3、接著點擊文件傳輸助手”,就會自動跳轉(zhuǎn)到文件傳輸助手”的聊天頁面了。

      4、最后在文件傳輸助手”聊天頁面里即可查詢自己以往的傳輸記錄。

      (來源:文章屋網(wǎng) )

      文件傳輸范文第4篇

      一、引言

      隨著計算機(jī)應(yīng)用的不斷深入和信息交流的不斷增加,許多UNIX系統(tǒng)用戶越來越感到,僅由一臺高性能微機(jī)運行UNIX,帶多臺至幾十臺終端已不能滿足應(yīng)用的需要,因此,越來越多的系統(tǒng)正在向多用戶網(wǎng)絡(luò)方向發(fā)展。

      UNIX TCP/IP網(wǎng)絡(luò)就是解決上述矛盾的一種系統(tǒng)。它將多臺運行UNIX系統(tǒng)的超級微機(jī)用電纜線連接起來,采用TCP/IP協(xié)議進(jìn)行通信,任一微機(jī)所連接的終端可登錄到網(wǎng)上其它任一主機(jī)上進(jìn)行操作,也可以通過網(wǎng)絡(luò)提供的功能,進(jìn)行其它網(wǎng)絡(luò)操作。

      SCO UNIX TCP/IP網(wǎng)絡(luò)系統(tǒng)為用戶提供了許多通信功能,它包括遠(yuǎn)程登錄、文件傳輸、郵件發(fā)送以及其它有關(guān)網(wǎng)絡(luò)應(yīng)用、管理及控制方面的命令。這些功能均在命令級實現(xiàn),即用戶只需在命令提示符下鍵入相應(yīng)的命令,即可完成相應(yīng)的操作。但是,有許多應(yīng)用系統(tǒng)對網(wǎng)絡(luò)功能的調(diào)用是在應(yīng)用程序運行過程中的,僅通過命令接口是不能完全滿足應(yīng)用的需要的,因此,用戶必須通過網(wǎng)絡(luò)提供的接口編制自己的網(wǎng)絡(luò)應(yīng)用程序。SCO UNIX TCP/IP為用戶提供了一組套接字接口,本文將介紹如何通過調(diào)用套接字以及TCP/IP提供的庫函數(shù)編制一個文

      件傳輸應(yīng)用程序。

      二、套接字接口及調(diào)用

      1.套接字接口

      一個用戶應(yīng)用系統(tǒng),即一個客戶進(jìn)程,通常需要與一個完成其功能有的服務(wù)進(jìn)程進(jìn)行通信。在UNIX系統(tǒng)中完成這種進(jìn)程間通信的一個方法是通過管道(PIPES)來實現(xiàn)的,UNIX網(wǎng)絡(luò)運行系統(tǒng)也提供一個更靈活的強有力的獨立子系統(tǒng)以支持一個分布式環(huán)境的進(jìn)程間通信,這個子系統(tǒng)就稱作套接字(SOCKET)接口。套接字接口構(gòu)成了在單個主機(jī)內(nèi)及整個網(wǎng)際間的編程界面和進(jìn)程間通信的基礎(chǔ)。

      一個套接字是一個軟件實體,它為進(jìn)程間通信提供了基本的構(gòu)件,它是進(jìn)程間通信的端點,對互連網(wǎng)地址來說,下面的一對全名套接字唯一確定了通信雙方的連接:

      其中,node是4字節(jié)地址,port為2字節(jié)長,左邊的是本地套接字,右邊是遠(yuǎn)程或外部套接字。

      套接字具有類型,其類型是由面向程序員的通信特性決定的,它與套接字支持的特殊協(xié)議有關(guān)。時程通常是在相同類型的套接字之間通信。目前程序員可使用下面三種類型的套接字。

      ·流套接字:提供雙向的、可靠的、有序的且不重復(fù)的無記錄邊界的數(shù)據(jù)流,它是最常用的一種類型。

      ·數(shù)據(jù)報套接字:它支持雙向數(shù)據(jù)流,但記錄邊界被保持,接收進(jìn)程必須重新定序,消除重復(fù)并提供可靠保證,它適用于單個報文的可靠性不重要的場合。

      ·原始套接字:使用原始套接字,程序員能訪問低層通信協(xié)議(如IP),它不是為一般用戶設(shè)置的,而是為了開發(fā)新的通信協(xié)議,或是為了訪問現(xiàn)有協(xié)議中較隱蔽功能而設(shè)置的。

      2.套接字的調(diào)用

      TCP/IP的系統(tǒng)調(diào)用主要是通過對套接字的操作來實現(xiàn)的,下面給出了部分常用的TCP/IP系統(tǒng)調(diào)用:

      ·scoket 創(chuàng)建套接字

      ·bind 為套接字賦一個名字

      ·connect 啟動一個連接

      ·accept 接受連接

      ·listen 監(jiān)聽連接

      ·write/send 發(fā)送信息

      ·read/recv 接收信息

      ·close 關(guān)閉套接字

      三、UNIX網(wǎng)絡(luò)庫例程的應(yīng)用

      網(wǎng)絡(luò)庫例程的主要用途是確定和建立網(wǎng)絡(luò)地址。

      在客戶方與服務(wù)方進(jìn)行通信前,在遠(yuǎn)程節(jié)點上確定一個服務(wù)需要進(jìn)行多級映射。為便于使用,每個服務(wù)被指定一個名字,這個名字必須被翻譯成網(wǎng)絡(luò)地址,最后,該地址被用來確定一個物理位置和到服務(wù)的路徑。可見,確定遠(yuǎn)程節(jié)點上的一個服務(wù)需要三級映射,這三級映射的具體實現(xiàn)隨著網(wǎng)絡(luò)結(jié)構(gòu)不同而有所變化。

      UNIX網(wǎng)絡(luò)庫例程是C程序語言函數(shù)調(diào)用,它提供下列映射的標(biāo)準(zhǔn)例程:

      ·主機(jī)名字到網(wǎng)絡(luò)地址

      ·網(wǎng)絡(luò)地址到網(wǎng)絡(luò)號

      ·協(xié)議名字到協(xié)議號

      ·服務(wù)名字到端口號及服務(wù)器使用的適當(dāng)協(xié)議

      1.映射主機(jī)名字

      例程gethostbynamne,gethostbyaddr,gethostent均可完成主機(jī)名字與地址映射,它們分別將主機(jī)名或節(jié)點地址映射成一個hostent結(jié)構(gòu):

      struct hostent{

      char * h_name;/* 正式主機(jī)名 */

      char * * h_aliasea;/* 別名表 */

      int h_addrtype;/* 主機(jī)的地址類型 */

      int h_length;/* 地址長度*/

      char * * h_addr_list; /* 地址表 */

      #define h_addr h_addr_list[0]

      }

      2.映射網(wǎng)絡(luò)名字

      getnetbyname, getnetbynumber,getnetent是分別用于映射網(wǎng)絡(luò)名字的例程,使用這些例程,可將網(wǎng)絡(luò)名映射到網(wǎng)絡(luò)號,或把網(wǎng)絡(luò)號映射到網(wǎng)絡(luò)名,并返回一個netent結(jié)構(gòu):

      struct netent{

      char * n_name;/* 正式的網(wǎng)絡(luò)名 */

      char * * n_aliasea;/* 別名表 */

      int n_addrtype;/* 網(wǎng)絡(luò)地址類型 */

      unsignedlong n_net;/* 網(wǎng)絡(luò)號 */

      }

      3.映射服務(wù)名字

      通過指定一個服務(wù)名和一個可選的合法協(xié)議,例程getservbyname,getservbyport,get

      servent映射服務(wù)名字到一個servent結(jié)構(gòu):

      struct servent{

      char * s_name;/* 正式的服務(wù)名 */

      char * * s_aliasea;/* 別名表 */

      int s_port;/* 服務(wù)駐留的端口號 */

      char * s_proto; /* 所使用的協(xié)議 */

      }

      四、文件傳輸程序的編制

      利用網(wǎng)絡(luò)所提供的套接字接口和庫例程,采用客戶/服務(wù)器模式來編制文件傳輸程序。

      程序流程如下:

      @@T8S09300.GIF;圖1@@

      在通信之前,要為服務(wù)分配端口地址,這個地址分配是在/etc/services文件中設(shè)置的。

      服務(wù)方進(jìn)程啟動后,它創(chuàng)建套接字,指定服務(wù)名和合法協(xié)議,并在指定端口地址上監(jiān)聽服務(wù)請求。

      客戶方進(jìn)程開始后,也要創(chuàng)建套接字,指定服務(wù)名和協(xié)議號,并啟動一個與服務(wù)方的連接,連接成功后,則立刻開始數(shù)據(jù)傳送,直到文件傳送結(jié)束。

      五、結(jié)束語

      本文只是在多用戶網(wǎng)絡(luò)應(yīng)用方面的一個初控,利用網(wǎng)絡(luò)所提供的接口,我們可以在更深層次對其進(jìn)行研究,開發(fā)出功能更強、更為靈活、適用的網(wǎng)絡(luò)應(yīng)用軟件。 參考文獻(xiàn)

      文件傳輸范文第5篇

      關(guān)鍵詞: VxWorks; FTP; 分包傳輸; 在線更新

      中圖分類號: TN919?34; TP311.1 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2013)24?0050?05

      Research and implementation of file transfer method under VxWork

      WANG Hao1, JIA Liang1, LI Yong?tian2

      (1. Electronic and Information Engineering Institute, Shenyang Aerospace University, Shenyang 110136, China;

      2. Beijing Fangtian Changjiu Science and Technology Ltd, beijing 100084, China)

      Abstract: In a project development process, in order to meet the needs of online Flash update of DSP application program in data acquisition system, first of all, the application program is downloaded to the system controller memory by means of the Tornado development environment built?in FTP server, then encapsulated into packets to transmit, and finally the application program update is realized. The program solves the problem that when data dump space is less than the size of data transfer file, and the subpackage transmission in several times is required. The entire software development process is performed in the Tornado development environment, which is able to complete the subpackage error?free transmission of application files. The practical application shows that the software program designed according to the scheme can achieve a good Flash online update, has the characteristics of subpackage transmission and data accuracy, and can meet the design requirements.

      Keywords: VxWorks; FTP; subpackage transmission; online update

      隨著計算機(jī)技術(shù)、半導(dǎo)體技術(shù)以及軟件技術(shù)的飛速發(fā)展,嵌入式微處理器的性能也得到不斷提高,嵌入式操作系統(tǒng)的種類更是層出不窮,從而使得嵌入式系統(tǒng)在越來越多的領(lǐng)域得到更加廣泛的應(yīng)用。其中,美國Wind River System公司于1983年設(shè)計開發(fā)的一種嵌入式實時操作系統(tǒng)(RTOS)VxWorks憑借其可移植性強等優(yōu)點得到了廣泛的應(yīng)用[1]。VxWorks提供的系統(tǒng)接口要比其他操作系統(tǒng)豐富,因此選擇它來作為嵌入式采集系統(tǒng)的軟件控制平臺,可以大大提高開發(fā)的效率[2]。本文應(yīng)用Motorola公司的MCP?750PowerPC嵌入式CPCI單板機(jī)作為系統(tǒng)控制器及北京方天長久科技有限公司的FTC?6010作為數(shù)據(jù)采集板組成數(shù)據(jù)采集系統(tǒng)。在開發(fā)過程中,考慮到了數(shù)據(jù)采集板有可能工作在不方便拆卸的場合,無法使用下載器對數(shù)據(jù)采集板上的DSP進(jìn)行應(yīng)用程序的更新,本文的研究重點就是實現(xiàn)對數(shù)據(jù)采集板上的DSP應(yīng)用程序進(jìn)行在線FLASH更新,從而擺脫下載器的束縛。基于以上考慮,規(guī)定了一份適合于本數(shù)據(jù)采集系統(tǒng)需要的分包文件傳輸協(xié)議,并在此基礎(chǔ)上用C語言封裝了一個基于VxWorks下的功能模塊,此功能模塊的設(shè)計成功的實現(xiàn)了DSP程序在線FLASH更新,滿足了開發(fā)的需要。

      1 數(shù)據(jù)采集系統(tǒng)分析介紹

      1.1 系統(tǒng)總體結(jié)構(gòu)及軟硬件開發(fā)環(huán)境

      數(shù)據(jù)采集系統(tǒng)基于CPCI總線實現(xiàn),系統(tǒng)總體結(jié)構(gòu)及軟硬件開發(fā)環(huán)境如圖1所示,上位機(jī)Tornado IDE(VxWorks集成開發(fā)環(huán)境)通過以太網(wǎng)絡(luò)和MCP?750PowerPC嵌入式單板機(jī)相連,MCP?750作為CPCI總線控制器通過CPCI總線控制數(shù)據(jù)采集板(FTC?6010),同時通過串口輸出信息到上位機(jī),便于操作。

      圖1 系統(tǒng)總體結(jié)構(gòu)及軟硬件開發(fā)環(huán)境

      1.2 DSP應(yīng)用程序在線FLASH更新時數(shù)據(jù)流向

      圖2簡要給出了DSP應(yīng)用程序在線FLASH更新時數(shù)據(jù)的流向,上位機(jī)使用FTP通過網(wǎng)絡(luò) 將應(yīng)用程序的二進(jìn)制文件下載到系統(tǒng)控制器的內(nèi)存中,再從系統(tǒng)控制器的內(nèi)存中通過CPCI總線將文件傳送至數(shù)據(jù)采集板上DSP外接的FLASH中,最后實現(xiàn)FLASH的更新。在傳送過程中,由于系統(tǒng)控制器與數(shù)據(jù)采集板上的DSP需要通過DPSRAM進(jìn)行交互,而DPSRAM的存儲空間有限,此時就需要將應(yīng)用程序文件分包進(jìn)行傳輸,傳輸協(xié)議的制定就顯得至關(guān)重要了,需要保證數(shù)據(jù)傳輸正確,傳輸過程不丟包。

      圖2 DSP應(yīng)用程序在線FLASH更新時數(shù)據(jù)流向

      2 FTP文件傳輸

      2.1 FTP介紹

      文件傳輸協(xié)議(File Transfer Protocol,F(xiàn)TP)是TCP/IP 的一種具體應(yīng)用,工作在OSI 模型的第7層, TCP 模型的第4層, 即應(yīng)用層。FTP要求客戶向服務(wù)器提供用戶注冊名和口令, 服務(wù)器拒絕非法用戶的訪問。但是鏈接一旦建立成功, 一個或多個文本或圖像二進(jìn)制文件都能被傳送, FTP 不必?fù)?dān)心可靠性和連接的管理, 因為FTP 依靠TCP 正確執(zhí)行這些功能[3]。Tornado開發(fā)環(huán)境自帶FTP服務(wù)器,常見用于系統(tǒng)成功引導(dǎo)后,下載VxWorks的運行時映象,需正確配置用戶名,密碼和路徑[4]。

      2.2 VxWorks下FTP程序的編寫

      可以直接使用VxWorks提供的幾個API函數(shù)進(jìn)行FTP程序的編寫,實現(xiàn)從上位機(jī)將應(yīng)用程序文件下載到系統(tǒng)控制器的內(nèi)存中的目的,這里主要介紹三個:ftpXfer、ftpReplyGet和ftpCommand,幾個函數(shù)的原型和主要用法如下[5]:

      ftpXfer的作用是初始化通過FTP傳輸?shù)奈募?/p>

      STATUS ftpXfer

      char * host,

      /*ftp服務(wù)器的IP地址,點分十進(jìn)制,格式類似于"10.0.0.1" */

      char * user, /*訪問ftp服務(wù)器的用戶名 */

      char * passwd, /*訪問ftp服務(wù)器的密碼 */

      char * acct, /*一般不用,直接填寫為空字符串就可以了*/

      char * cmd, /*發(fā)送給FTP服務(wù)器的命令,例如讀取命令為"RETR"*/

      char * dirname, /*待訪問文件所在的目錄*/

      char * filename, /*待訪問文件的文件名*/

      int * pCtrlSock, /*存儲返回的文件描述符,也就是常說的fd*/

      int * pDataSock /*存儲返回的待訪問文件的文件描述符*/

      此例程按以下順序發(fā)起通過FTP服務(wù)器傳輸文件:

      (1)建立一個連接到指定的主機(jī)上的FTP服務(wù)器;

      (2)在指定的主機(jī)上設(shè)置好用戶名,密碼和賬號;

      (3)發(fā)送文件傳輸類型命令;

      (4)發(fā)送文件所在的目錄以及文件名命令;

      (5)將指定的轉(zhuǎn)移命令和指定的文件名作為參數(shù),建立一個數(shù)據(jù)連接。典型的傳輸命令為STOR %S:寫入到一個遠(yuǎn)程文件;RETR%S:讀取一個遠(yuǎn)程文件。

      由此產(chǎn)生的控制和數(shù)據(jù)連接文件描述符分別通過pCtrlSock和pDataSock返回。

      調(diào)用這個程序后,數(shù)據(jù)可以被讀取或?qū)懭氲竭h(yuǎn)程服務(wù)器返回的文件描述符pDataSock中。當(dāng)所有傳入的數(shù)據(jù)被讀取(讀取數(shù)據(jù)套接字由EOF表示)和/或所有傳出的數(shù)據(jù)已寫入,應(yīng)關(guān)閉數(shù)據(jù)套接字fd。

      這時候應(yīng)該調(diào)用函數(shù)ftpReplyGet(),用來接收控制套接字的最后的回復(fù)。

      int ftpReplyGet

      int ctrlSock, /*連接FTP control socket文件描述符fd*/

      BOOL expecteof /* TRUE = EOF expected, FALSE = EOF is error */

      若沒有錯誤,應(yīng)調(diào)用函數(shù)ftpCommand()關(guān)閉control socket。

      int ftpCommand

      int ctrlSock, /* 連接FTP control socket文件描述符fd */

      char * fmt, /* 待傳遞的ftp命令 */

      int arg1, /* ftp命令的參數(shù)*/

      int arg2,

      int arg3,

      int arg4,

      int arg5,

      int arg6

      如果FTP命令不涉及數(shù)據(jù)傳輸(例如文件刪除或重命名),pDataSock應(yīng)該是NULL,在這種情況下,不會建立數(shù)據(jù)連接。函數(shù)返回為OK或ERROR(有socket不能創(chuàng)建或不能進(jìn)行連接)。

      FTP文件傳輸?shù)娜窟^程如圖3所示。

      圖3 VxWorks下FTP文件傳輸過程

      程序關(guān)鍵代碼如下:

      /* initiate a transfer via a remote FTP server to read a remote file */

      if(ERROR==ftpXfer(UNIX_HOST,USER,PASSWD,"","RETR %s",W_DIR,F(xiàn)ILE,&ctrlSock,

      &dataSock))

      {

      perror("Error in initiating a transfer via a remote FTP server");

      return ERROR;

      }

      /* read the remote file data to buffer */

      while((NumBytes=read(dataSock,buff,sizeof(buff)))>0)

      {

      buff+=NumBytes;

      }

      if(NumBytes

      {

      perror ("Error in reading"); /* read error */

      return (ERROR);

      }

      close(dataSock);

      /* Get an FTP command reply to see whether EOF is encountered */

      if(ftpReplyGet(ctrlSock,TRUE)!=FTP_COMPLETE)

      {

      perror ("positive completion failed");

      return (ERROR);

      }

      /* Send QUIT FTP command */

      if(ftpCommand(ctrlSock,"QUIT",0,0,0,0,0,0)!=FTP_COMPLETE)

      {

      perror ("QUIT FTP command positive completion failed");

      return (ERROR);

      }

      close (ctrlSock);

      3 分包文件傳輸協(xié)議的制定與實現(xiàn)

      3.1 分包文件傳輸協(xié)議制定

      通過本文前兩節(jié)的分析和應(yīng)用,文件已經(jīng)成功的從上位機(jī)下載到了系統(tǒng)控制器的內(nèi)存當(dāng)中,本節(jié)著重介紹如何從系統(tǒng)控制器的內(nèi)存中將文件封裝成數(shù)據(jù)包分次傳送給DPSRAM,如何通知DSP將數(shù)據(jù)包取走,如何得到DSP的應(yīng)答之后傳送下一個數(shù)據(jù)包,如何判斷數(shù)據(jù)包全部傳送完成等,簡而言之,就是分包文件傳輸協(xié)議的制定,圖4用流程圖的形式對整個過程進(jìn)行了詳細(xì)的描述。

      下面以數(shù)據(jù)包包含的信息要素為例介紹分包文件傳輸協(xié)議,每個數(shù)據(jù)包包含以下信息要素,如圖5所示。

      系統(tǒng)控制器將數(shù)據(jù)包寫入DPSRAM之后,會發(fā)起DPSRAM左端口中斷,DSP檢測到中斷后從DPSRAM中取走數(shù)據(jù)包。

      控制命令字的主要作用是告知DSP,此數(shù)據(jù)包數(shù)據(jù)空間中的數(shù)據(jù)是用于FLASH更新用的,需要將其寫入FLASH中。

      數(shù)據(jù)包長度的主要作用是告知DSP即將要讀取的數(shù)據(jù)包中數(shù)據(jù)空間的長度,以便DSP將其寫入到FLASH對應(yīng)的空間中。

      圖4 分包文件傳送過程

      圖5 數(shù)據(jù)包的信息要素

      數(shù)據(jù)包序號的主要作用是告知DSP,此次傳輸?shù)氖堑趲讉€數(shù)據(jù)包,防止傳輸過程中丟包。

      數(shù)據(jù)寫入標(biāo)記分為3種:根據(jù)數(shù)據(jù)包序號,如果傳輸?shù)氖堑谝粋€數(shù)據(jù)包,則表示數(shù)據(jù)包傳輸開始;如果傳輸?shù)氖侵虚g的數(shù)據(jù)包,則表示數(shù)據(jù)包繼續(xù)傳輸;如果接收到的是最后一個數(shù)據(jù)包,則表示數(shù)據(jù)包傳輸完成。

      CRC校驗和的主要作用是便于DSP比較數(shù)據(jù)傳輸之前的檢驗和與自己根據(jù)接收到的數(shù)據(jù)計算出來的校驗和是否一致,借此判斷數(shù)據(jù)傳輸過程中有無丟數(shù)現(xiàn)象發(fā)生。文件總的大小的主要作用是告知DSP需要擦除多大的FLASH空間用于存儲更新后的文件。

      3.2 分包文件傳輸協(xié)議實現(xiàn)

      協(xié)議的實現(xiàn)主要用到了以下幾個關(guān)鍵函數(shù):

      (1)數(shù)據(jù)包協(xié)議頭的封裝

      UINT32 gfWriteLong(UINT32 x,UINT32 y)

      {

      *(UINT32*)x=y;

      return y;

      }

      此函數(shù)用于封裝數(shù)據(jù)包協(xié)議頭,將數(shù)據(jù)包協(xié)議頭信息寫入相應(yīng)的地址空間中。

      (2)CRC校驗和算法[6]

      本文采用一種按位計算的方法計算校驗和,和DSP計算出來的校驗和相比較,防止數(shù) 據(jù)傳輸過程中出現(xiàn)差錯,關(guān)鍵代碼如下:

      UINT32 gfCRCCheckSum(char *ptr,unsigned long len)

      {

      unsigned char i;unsigned long crc=0;

      while(len??!=0)

      {

      for(i=0x80;i!=0;i/=2)

      {

      if((crc&0x8000)!=0)

      {

      crc*=2;

      crc^=0x1021;

      }

      else

      {

      crc*=2;

      }

      if((*ptr&i)!=0)

      {

      crc^=0x1021;

      }

      }

      ptr++;

      }

      return crc;

      }

      (3)應(yīng)答機(jī)制

      應(yīng)答機(jī)制的作用是得到DSP接收完一個數(shù)據(jù)包之后反饋回來的信息(用數(shù)值表示),如為數(shù)據(jù)傳輸正確,則打印出提示提示語句后接著傳送下一個數(shù)據(jù)包;如為校驗和出錯,則說明數(shù)據(jù)包傳送過程中發(fā)生了丟數(shù)等現(xiàn)象,打印出語句后直接結(jié)束退出;如為FLASH更新完成,則說明所有數(shù)據(jù)包傳送完成,且正確的寫入到FLASH中了,打印出提示語句后直接結(jié)束退出;如為FLASH更新出錯,則說明所有數(shù)據(jù)包傳送完成,但沒有正確的寫入到FLASH中,打印出提示語句后直接結(jié)束退出。

      關(guān)鍵代碼如下:

      STATUS gfDSPACKCMD(int handle,UINT32 ACKAddress)

      {

      UINT32 ACKCMD;

      ACKCMD=*(*ACKAddress);

      switch(ACKCMD)

      {

      case DSP_ACK_OK:

      printf("\nData Packet Send Success and Data Right!\n\n");

      break;

      case ERROR_CHECKSUM:

      printf("\nData packet CRC CheckSum ERROR!\n");

      break;

      case FLASH_UPDATE_OK:

      printf("\n\nFlash Data Updates Over!!!\n");

      break;

      case ERROR_FLASH_DATA:

      printf("\nFlash data write error!\n");

      break;

      default:

      printf("\nAcknowledge command word error!\n");

      break;

      }

      return OK;

      }

      4 實際應(yīng)用

      基于以上分析研究,編寫了相應(yīng)的程序,并在數(shù)據(jù)采集系統(tǒng)中進(jìn)行了多次試驗,試驗結(jié)果如表1所示,從試驗結(jié)果可以看出,本文所介紹的方法可以保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,滿足了DSP程序在線FLASH更新的需求。

      表1 FLASH更新測試結(jié)果

      5 結(jié) 論

      本文結(jié)合實際項目開發(fā)過程中遇到的實際問題,概述了一種 VxWorks下簡單文件傳輸?shù)脑砗途唧w的軟件實現(xiàn)方法。實際應(yīng)用證明,按照此種方式編寫的程序代碼簡單,實用,可以很好的進(jìn)行文件數(shù)據(jù)分包傳輸。

      參考文獻(xiàn)

      [1] 李署東,吳昊,杜祝.VxWorks下點對點簡單文件傳輸?shù)膶崿F(xiàn)[J].中國水運,2011,11(1):84?87.

      [2] 唐曉平.VxWorks在cPCI高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2008.

      [3] 黃世權(quán).FTP協(xié)議分析和安全研究[J].微計算機(jī)信息,2008,24(2?3):93?94.

      [4] 馮先成,李寒,張鐵男.基于MPC850 VxWorks系統(tǒng)的BSP設(shè)計[J].計算機(jī)與數(shù)字工程,2012,40(6):39?43.

      主站蜘蛛池模板: 国产精品亚洲一区二区三区喷水| 香蕉乱码成人久久天堂爱| 国产成人无码免费看视频软件 | 又粗又大又黄又硬又爽免费看| av 日韩 人妻 黑人 综合 无码 | 精品国精品自拍自在线| 暖暖 免费 高清 日本 在线观看5 色老头亚洲成人免费影院 | 欧美不卡无线在线一二三区观| 国产亚洲精品中文字幕| 国产成人久久精品流白浆| 国产精品无码成人午夜电影| 激情伊人五月天久久综合| 久久亚洲精品成人av秋霞| 好吊视频一区二区三区人妖| 国产av一区二区不卡| 婷婷色爱区综合五月激情韩国| 饥渴的熟妇张开腿呻吟视频| 18禁免费无码无遮挡网站| 国产亚洲真人做受在线观看| 久青草国产在视频在线观看| 韩国午夜福利片在线观看| 国产亚洲精品国产福APP| 92精品国产自产在线观看481页| 久久亚洲精品11p| 天堂资源国产老熟女在线| 国模雨珍浓密毛大尺度150p| 亚洲成在人线AV品善网好看| 亚洲高清免费在线观看| 一级片黄色一区二区三区| 成人免费无遮挡在线播放| 国产精品久久久久久久网| аⅴ天堂国产最新版在线中文| 亚洲禁精品一区二区三区| 人妻中文字幕精品系列| 日本不卡三区| 亚洲性日韩精品一区二区| 国产卡一卡二卡三免费入口| 秋霞人妻无码中文字幕| 国产亚洲精品久久综合阿香| 亚洲综合视频一区二区三区| 亚洲国产成人综合精品|