版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)控制工程復(fù)習(xí)題一、 填空題.根據(jù)計(jì)算機(jī)在控制中的典型應(yīng)用,可將計(jì)算機(jī)控制系統(tǒng)劃分為操作指導(dǎo)控制 系統(tǒng)、直接數(shù)字控制系統(tǒng)、監(jiān)督控制系統(tǒng)、分布式控制系統(tǒng)和現(xiàn)場(chǎng)總線控制 系統(tǒng)。. 而機(jī)控制系統(tǒng)由硬件和軟件兩部分組成。.假設(shè)比特率為Bbps, 一次諧波頻率為 B/8 Hz,普通語音級(jí)線路截至頻率為 3000Hz,則允許通過最高諧波次數(shù)為 24000/B 。.數(shù)字通信系統(tǒng)主要技術(shù)指標(biāo)為傳輸速率、出錯(cuò)率、信道容量。.實(shí)現(xiàn)數(shù)據(jù)交換方法主要有電路交換、報(bào)文交換及分組交換。. RS232串口標(biāo)準(zhǔn)傳輸方式為單端收發(fā)、RS485標(biāo)準(zhǔn)傳輸方式為平衡傳輸方式。.常用的軟件調(diào)試方式有強(qiáng)行排錯(cuò)法、回溯排錯(cuò)法、歸納排錯(cuò)
2、法及演繹排錯(cuò)法。. MSComm控件傳輸數(shù)據(jù)類型可分為純文本數(shù)據(jù)和二進(jìn)制數(shù)據(jù)。.使用WinAPI編寫串口通信程序讀寫操作有同步和異步兩種方式。.基于WinAPI串口通信程序數(shù)據(jù)接受主耍有查詢和事件驅(qū)動(dòng)兩種方式。. Windows多線程編程方式主要有 Win32API、標(biāo)準(zhǔn)C庫以及MFC類庫三種 方式。.在Windows多線程編程方式中,線程之間豐要采用全局變量和自定義消息兩 種方式進(jìn)行通信。. Win32API提供臨界區(qū)、互斥對(duì)象、信號(hào)量及事件對(duì)象實(shí)現(xiàn)線程之間的同步。.控制網(wǎng)絡(luò)和信息網(wǎng)絡(luò)集成集成采用網(wǎng)絡(luò)互聯(lián)、動(dòng)態(tài)數(shù)據(jù)交換及數(shù)據(jù)庫技術(shù)。.軟件體系結(jié)構(gòu)主要包括B/S C/S及單機(jī)三種模式。二、簡(jiǎn)單
3、題1、試闡述網(wǎng)絡(luò)體系結(jié)構(gòu)、層次模型及協(xié)議之間的關(guān)系。參考答案:層次模型決定是網(wǎng)絡(luò)模型的分層數(shù)及每層的功能定義;協(xié)議描述對(duì)等層之間的數(shù)據(jù)傳輸方式;網(wǎng)絡(luò)體系結(jié)構(gòu)包括層次模型及協(xié)議兩個(gè)方面。2、試闡述協(xié)議、服務(wù)、接口之間的關(guān)系;參考答案:服務(wù)即功能;接口即調(diào)用方式;協(xié)議則是服務(wù)的實(shí)現(xiàn)方式。三者是緊 密相關(guān)的。3、在計(jì)算機(jī)和單片機(jī)通信過程中,考慮下位機(jī)(單片機(jī))程序?yàn)闇y(cè)試程序,上 位機(jī)(PC)程序?yàn)楸粶y(cè)試程序,試舉例說明二者正常數(shù)據(jù)采集(通信)過程。表h通信數(shù)據(jù)基才K旅程表序號(hào)測(cè)試程序(下位機(jī):?jiǎn)纹瑱C(jī))低測(cè)試程序C上位機(jī):PC112 03 FC-3430 24 36 HA-5YACK4、試說明MSCo
4、mm控件RThreshold屬性含義。參考答案:該屬性是一個(gè)閾值。當(dāng)接受緩沖區(qū)中字符數(shù)達(dá)到閾值時(shí),MSComm控件產(chǎn)生OnComm事件,并且 CommEvent屬性會(huì)設(shè)置為 ComEvReceive,即接受事件。若設(shè)置為0時(shí),則不論接受緩沖區(qū)中有多少字符, 都不會(huì)產(chǎn)生OnComm 事件。5、試說明MSComm控件SThreshold屬性含義。參考答案:該屬性是一個(gè)閾值。當(dāng)發(fā)送緩沖區(qū)中的字符數(shù)達(dá)到閾值時(shí),MSComm 控件將產(chǎn)生 OnComm事件,并且CommEvent屬性被設(shè)置為CommEvSend值。6、假設(shè)用口采用半雙工方式,使用一問一答方式通信協(xié)議,接受數(shù)據(jù)長度存在10字節(jié)、15字節(jié)和2
5、0字節(jié)三種可能性的情況下,簡(jiǎn)要說明接受數(shù)據(jù)的實(shí)際處理 方法。參考答案:置RThreshold為10,在OnComm事件中預(yù)讀10個(gè)字節(jié),判斷是否 完整幀。若是完整幀,則設(shè)置InputLen為0或10,然后使用GetInput()讀取即可。否則設(shè)置InputLen為5,然后GetInput()讀取,與前10個(gè)字節(jié)合并一幀,判斷是 否完整。如是非完整幀則設(shè)置InputLen為5,然后GetInput()讀取。7、假設(shè)用口采用半雙工方式,使用一問一答方式通信協(xié)議,接受數(shù)據(jù)長度長度不確定的情況下,簡(jiǎn)要說明接受數(shù)據(jù)實(shí)際處理方法:參考答案:數(shù)據(jù)通常包含有特定格式的數(shù)據(jù)頭,可以通過數(shù)據(jù)頭計(jì)算出整個(gè)數(shù)據(jù)幀的長
6、度。假定這些特定格式的數(shù)據(jù)頭長度為10字節(jié)。按照下述步驟處理:設(shè)置 RThreshold=1O,在 OnComm 事件中首先設(shè)置 InputLen=10,使用 GetInput()函數(shù)讀取緩沖區(qū),并根據(jù)讀取數(shù)據(jù)判斷整個(gè)數(shù)據(jù)幀長度。然后讀取 InBufferSize 屬性值,并判斷該值是否為整個(gè)數(shù)據(jù)幀長度與10之差;若不是,則反復(fù)讀取,直至該值為整個(gè)數(shù)據(jù)幀長度與 10之差。此時(shí)設(shè)置InputLen=0或InBufferSize值, 并使用GetInput()函數(shù)讀取緩沖區(qū),將讀取數(shù)據(jù)與前 10個(gè)數(shù)據(jù)合并成一個(gè)完整 的數(shù)據(jù)幀。8、簡(jiǎn)要說明采用MSComm控件進(jìn)行串口數(shù)據(jù)采集程序設(shè)計(jì)步驟。參考答案:
7、加載控件;初始化及打開用口;事件處理;關(guān)閉用口;通信協(xié)議約定9、簡(jiǎn)要說明在基于對(duì)話框程序中使用 MSComm控件的操作步驟。參考答案:拖放控件圖標(biāo)至窗口,創(chuàng)建才$件ID;在對(duì)話框頭文件中明CMSComm 類變量及引用控件類頭文件;創(chuàng)建 CMSComm實(shí)例;建立控件事件響應(yīng)代碼框 架。10、簡(jiǎn)要說明WinAPI串口通信同步查詢編程方式操作步驟。參考答案:CreateFile (非重疊方式);初始化串口句柄; WriteFile (發(fā)送數(shù)據(jù)); ReadFile (讀取數(shù)據(jù));CloseFile (關(guān)閉串口)。11、簡(jiǎn)要說明WinAPI串口通信異步重疊I/O查詢編程方式操作步驟。參考答案:定義全局
8、變量;創(chuàng)建用口;發(fā)出讀寫操作;讀寫線程函數(shù)的建立;關(guān)閉串口;12、簡(jiǎn)要說明 Windows編程中HANDLE (句柄)的概念。參考答案:指針包含的是引用對(duì)象的內(nèi)存地址, 而句柄則是由系統(tǒng)所管理的引用 標(biāo)識(shí),該標(biāo)識(shí)可以被系統(tǒng)重新定位到一個(gè)內(nèi)存地址上。 這種間接訪問對(duì)象的模式 增強(qiáng)了系統(tǒng)對(duì)引用對(duì)象的控制。13、簡(jiǎn)要說明Windows多線程編程概念。參考答案:每個(gè)正在系統(tǒng)上運(yùn)行的程序都是一個(gè)進(jìn)程。 每個(gè)進(jìn)程包含一到多個(gè)線 程。進(jìn)程也可能是整個(gè)程序或者是部分程序的動(dòng)態(tài)執(zhí)行。線程是一組指令的集合, 或者是程序的特殊段,它可以在程序里獨(dú)立執(zhí)行。也可以把它理解為代碼運(yùn)行的 上下文。所以線程基本上是輕量級(jí)的進(jìn)
9、程, 它負(fù)責(zé)在單個(gè)程序里執(zhí)行多任務(wù)。 通 常由操作系統(tǒng)負(fù)責(zé)多個(gè)線程的調(diào)度和執(zhí)行。 線程是程序中一個(gè)單一的順序控制流 程.在單個(gè)程序中同時(shí)運(yùn)行多個(gè)線程完成不同的工作,稱為多線程。線程和進(jìn)程 的區(qū)別在于子進(jìn)程和父進(jìn)程有不同的代碼和數(shù)據(jù)空間,而多個(gè)線程則共享數(shù)據(jù)空 間,每個(gè)線程有自己的執(zhí)行堆棧和程序計(jì)數(shù)器為其執(zhí)行上下文多線程主要是為了節(jié)約CPU時(shí)間,發(fā)揮利用,根據(jù)具體情況而定。線程的運(yùn)行中需要使用計(jì)算機(jī) 的內(nèi)存資源和CPU。13、簡(jiǎn)要說明Windows中線程和進(jìn)程的關(guān)系。進(jìn)程:進(jìn)程是一個(gè)程序?qū)嵗贿M(jìn)程占據(jù) 4GB地址空間,在該空間存放應(yīng)用程序 執(zhí)行所需要的各種資源;Win32進(jìn)程沒有活力,是靜態(tài)的。
10、線程:線程是CPU調(diào)度計(jì)算任務(wù)的最小單位; Win32進(jìn)程創(chuàng)建時(shí),會(huì)自動(dòng)創(chuàng)建一個(gè)主線程;主線程可以創(chuàng)建其它線程(輔助線程)14、簡(jiǎn)要說明Windows中終止線程的方法。參考答案:終止線程有三種方法:線程函數(shù)自然退出;內(nèi)部使用退出函數(shù)AfxEndThreadExitThread_endthread;外部使用 TerminateThread函數(shù)。15、如何在MFC類庫中使用自定義消息實(shí)現(xiàn)線程之間通信?(1)聲明自定義消息:在頭文件頂部加入消息名稱聲明:const WM_THREADMSG = WM_USER+100;(2)聲明消息響應(yīng)后數(shù):在頭文件/AFX_MSG 和 “DECLARE_MESSA
11、GE_MAP() ”之間聲明消息響應(yīng)函數(shù): Afx_msg LONG OnThreadMsg(WPARAM wParam,LPARAM, lParam).建立消息連接:在實(shí)現(xiàn)文件/AFX_MSG_MAP和“END_MESSAGE_MAP() ” 之間:ON_MESSAGE(WM_THREADMSG , OnThreadMsg).編寫消息響應(yīng)函數(shù):在實(shí)現(xiàn)文件中,添加消息函數(shù)函數(shù)的實(shí)現(xiàn)體:LONG CMyClass:OnThreadMsg(WPARAM wParam,LPARAM lParam) /加入響應(yīng)函數(shù)的具體處理代碼.寄送自定義消息:BOOL PostMessage( HWND hWnd,
12、 UINT Msg, WPARAM wParam, LPARAM lParam);16、簡(jiǎn)要說明OSI/RM模型中物理層定義。參考答案:利用物理傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接, 以透明地傳送比特流。物理層實(shí)際上是設(shè)備之間的物理接口, 它規(guī)定了機(jī)械特性、電氣特性、功能特性 及過程特性。17、簡(jiǎn)要說明OSI/RM模型中數(shù)據(jù)鏈路層的主要功能。參考答案:提供可靠的比特流傳輸服務(wù)。18、簡(jiǎn)要說明TCP/IP層次模型。參考答案:應(yīng)用層、傳輸層(TCP/UDP)、互聯(lián)網(wǎng)層、主機(jī)至網(wǎng)絡(luò)層。19、簡(jiǎn)要說明局域網(wǎng)參考模型中 MAC子層的主要功能。參考答案:決定廣播信道中信道分配協(xié)議的子層。三、程序題及設(shè)計(jì)題1、
13、MSComm控件輸入和讀出數(shù)據(jù)均為 VARIANT數(shù)據(jù)類型,考慮傳輸數(shù)據(jù)為純 文本,試編程實(shí)現(xiàn)從接受緩沖區(qū)中讀取字符(給出C+代碼片段)。VARIANT input ;char charInput100;int counts = m_COMM.GetInBufferCount(); /m_COMM 為 MSComm 控件對(duì)象 If (counts0) input = m_COMM.GetInput();ASSERT(input.vt = VT_BSTR);CString strInput(input.bstrVal)strcpy(charInput, strInput);2、MSComm控件輸
14、入和讀出數(shù)據(jù)均為 VARIANT數(shù)據(jù)類型,考慮傳輸數(shù)據(jù)為二 進(jìn)制,試編程實(shí)現(xiàn)從接受緩沖區(qū)中讀取二進(jìn)制數(shù)據(jù)(給出C+代碼片段)。VARIANT input ;BYTE rxdata2048;COleSafeArray safeArray;input = m_COMM.GetInput( );/ 其中 m_COMM 為 MSComm 控件對(duì)象safeArray = input;long len = safeArray.GetOneDimSize();for(long k=0; klen; k+) safeArray.GetElement(&k, rxdata+k);3.基于多線程技術(shù)、事件驅(qū)動(dòng)方式
15、實(shí)現(xiàn)串口雙機(jī)數(shù)據(jù)通信程序,該程序即可作 為發(fā)送方使用也可作為接受方使用。其中傳輸數(shù)據(jù)小于64M;請(qǐng)求包、普通數(shù)據(jù)包、結(jié)束包及響應(yīng)包幀格式表示如下。請(qǐng)求包:1字節(jié)4個(gè)字節(jié) 1個(gè)字節(jié)1個(gè)字節(jié)ENQ文件尺寸文件名長度文件名校驗(yàn)普通數(shù)據(jù)包:1字節(jié)(值為2) 2個(gè)字節(jié)(12)1024個(gè)字節(jié) 1個(gè)字節(jié)STX序號(hào)數(shù)據(jù)校驗(yàn)結(jié)束包:1字節(jié)(值為3)2個(gè)字節(jié) 2個(gè)字節(jié)1個(gè)字節(jié)ETX數(shù)據(jù)長度序號(hào)|數(shù)據(jù)校驗(yàn)-etx數(shù)據(jù)長度響應(yīng)包:名稱取值含義ACK6接受方收到正確數(shù)據(jù)NAK21接受方收到數(shù)據(jù)有誤CAN24接受方取消了發(fā)送方方請(qǐng)求請(qǐng)?jiān)O(shè)計(jì)事件處理函數(shù)和消息響應(yīng)函數(shù)的流程圖 事件處理函數(shù)處理流程圖消息響應(yīng)函數(shù)處理流程圖:其
16、中發(fā)送狀態(tài)1態(tài):發(fā)送操作已經(jīng)開始,請(qǐng)求包已經(jīng)發(fā)出;2態(tài):第一個(gè)普通數(shù) 據(jù)包已經(jīng)發(fā)出,等待接受方響應(yīng);3態(tài):結(jié)束數(shù)據(jù)包已發(fā)送,等待接受方響應(yīng); 接受0態(tài):等待發(fā)送方請(qǐng)求包;1態(tài):等待接受普通或結(jié)束數(shù)據(jù)包。四、程序閱讀題、HANDLE hCOM;hCOM = CreateFile ( “ COM2”,GENERIC_READ|GENERIC_WRITE , 0, NULL , OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if ( hCOM != INV ALID_HANDLE_V ALUE) SetupComm(hCOM, 1024, 1024);DCB
17、 myDCB;GetCommState(hCOM, &myDCB);myDCB.BaudRate = CBR_19200;myDCB.fBinary = TRUE;myDCB.fParity = TRUE;myDCB.ByteSize = 8;myDCB.Parity = ODDPARITY;myDCB.StopBit = ONESTOPBIT;SetCommState(hCOM, &myDCB);Else AfxMessageBox(“創(chuàng)建用口失敗! ”);參考答案:HANDLE hCOM;hCOM = CreateFile ( “ COM2”,GENERIC_READ|GENERIC_WR
18、ITE , 0, NULL , OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);/ / / / / / / /if ( hCOM != INV ALID_HANDLE_V ALUE) /SetupComm(hCOM, 1024, 1024); DCB myDCB;/中明句柄;使用串口 2;讀寫方式,可以接受及發(fā)送;不允許共享;默認(rèn)安全屬性;打開已有端口,不能創(chuàng)建); 非重疊操作; 無模板文件成功創(chuàng)建設(shè)置輸入輸出緩沖區(qū)大小聲明DCB數(shù)據(jù)結(jié)構(gòu)獲取默認(rèn)DCB設(shè)置波特率為19200二進(jìn)制通信方式允許奇偶校驗(yàn)數(shù)據(jù)位為8奇校驗(yàn)使用1位停止位 設(shè)置通信參數(shù)。GetCo
19、mmState(hCOM, &myDCB); myDCB.BaudRate = CBR_19200; myDCB.fBinary = TRUE; myDCB.fParity = TRUE; myDCB.ByteSize = 8; myDCB.Parity = ODDPARITY; myDCB.StopBit = ONESTOPBIT; SetCommState(hCOM, &myDCB);Else AfxMessageBox( 倉1J建用口失??! ”);/報(bào)錯(cuò)).設(shè)hCOM以重疊I/O方式打開,試解釋說明下列代碼的功能DWORD ThreadProcRead(LPVOID pParam) BY
20、TEmyByte20;CStringmyStr;DWORDdwRes;DWORDdwRead;BOOLfRes;charmyChar10;Rol.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);if(Rol.hEvent=NULL) return -1;if(ReadFile(hCom, &myByte, 3, NULL, &Rol) / AfxMessageBox( 成功讀出! ” );else dwRes = WaitForSingleObject(Rol.hEvent, 5000);switch(dwRes) CASE WAIT_OBJECT_
21、0:if(!GetOverlappedResult(hCom, &Rol,&dwRead, TRUE) /操作失敗 else /操作成功完成break;CASE WAIT_TIMEOUT:/讀操彳失敗break;default: /加入默認(rèn)情況下的處理代碼 break;CloseHandle(Rol.hEvent);return 0;參考答案:在讀線程函數(shù)中,首先應(yīng)初始化重疊結(jié)構(gòu)Rol的成員hEvent,將其設(shè) 置為無信號(hào)狀態(tài)。(當(dāng)讀操作完成或出現(xiàn)通信錯(cuò)誤時(shí),該變量會(huì)被自動(dòng)設(shè)置為有 信號(hào)狀態(tài)。)接著使用ReadFile()函數(shù)發(fā)出讀命令。若該函數(shù)返回TRUE,說明讀 操作已經(jīng)完成,可以處理讀取
22、的數(shù)據(jù)。或該讀函數(shù)返回FALSE,說明讀操作未完成。此時(shí)使用 WaitForSingleObject()函數(shù)等待讀操作的結(jié)果。根據(jù)返回結(jié)構(gòu)的 不同,采取相應(yīng)的處理代碼。.解釋說明相應(yīng)變量及語句的含義。實(shí)現(xiàn)文件中定義如下全局變量:HANDLEhCom;HANDLEhWnd;DWORDdwThreadID;/(1)HANDLEhThreadEvent;/(2)DWORDThreadProcEvent(LPVOID pParam);/(3)boolhEventRun;/(4)boolfStopMsg;/(5)OVERLAPPEDEol = 0;/(6)OVERLAPPEDWol= 0;OVERLAPPEDRol = 0;ThreadProcEvent 定義如下:DWORD ThreadProcEvent(LPVOID pParam) DWORD dwEvtMask, dwRe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026河北保定易縣公安局招聘警務(wù)輔助人員4名備考考試試題及答案解析
- 2026廣東中山大涌鎮(zhèn)起鳳環(huán)社區(qū)居民委員會(huì)公益性崗位招聘2人備考考試題庫及答案解析
- 2026江西省弋投建設(shè)(集團(tuán))有限公司社會(huì)招聘2人筆試備考試題及答案解析
- 2026貴州黔東南州三穗縣第二批城鎮(zhèn)公益性崗位招聘21人備考考試題庫及答案解析
- 文庫發(fā)布:飛利浦介紹
- 2026福建廈門海隆對(duì)外勞務(wù)合作有限公司系統(tǒng)內(nèi)選聘1人備考考試題庫及答案解析
- 2026上半年云南事業(yè)單位聯(lián)考?xì)埣踩寺?lián)合會(huì)直屬事業(yè)單位公開招聘人員備考考試題庫及答案解析
- 2026上半年黑龍江伊春市事業(yè)單位招聘262人備考考試試題及答案解析
- 2026湖南農(nóng)業(yè)發(fā)展投資集團(tuán)有限責(zé)任公司招聘3人備考考試試題及答案解析
- 2026年臨沂市市直部分醫(yī)療衛(wèi)生事業(yè)單位公開招聘醫(yī)療后勤崗位工作人員(9人)備考考試題庫及答案解析
- 體系工程師工作年終總結(jié)
- 五年級(jí)上冊(cè)小數(shù)四則混合運(yùn)算100道及答案
- 3D小人素材13(共16)-金色系列
- 上腔靜脈綜合征患者的護(hù)理專家講座
- 免責(zé)協(xié)議告知函
- 食物與情緒-營養(yǎng)對(duì)心理健康的影響
- 2023氣管插管意外拔管的不良事件分析及改進(jìn)措施
- 麻醉藥品、精神藥品月檢查記錄
- 基礎(chǔ)化學(xué)(本科)PPT完整全套教學(xué)課件
- 蕉嶺縣幅地質(zhì)圖說明書
- 電梯控制系統(tǒng)論文
評(píng)論
0/150
提交評(píng)論