计算机控制工程复习含答案资料.doc

上传人:坚持 文档编号:2100040 上传时间:2019-04-24 格式:DOC 页数:14 大小:87.50KB
下载 相关 举报
计算机控制工程复习含答案资料.doc_第1页
第1页 / 共14页
计算机控制工程复习含答案资料.doc_第2页
第2页 / 共14页
计算机控制工程复习含答案资料.doc_第3页
第3页 / 共14页
计算机控制工程复习含答案资料.doc_第4页
第4页 / 共14页
计算机控制工程复习含答案资料.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、计算机控制工程复习题、填空题1. 根据计算机在控制中的典型应用,可将计算机控制系统划分为操作指导控制系统、直接数字控制系统、 监督控制系统、分布式控制系 统和现场总线控制系统。2. 计算机控制系统由硬件和软件两部分组成。3. 假设比特率为 B bps,一次谐波频率为 B/8 Hz,普通语音级线路截至频率为3000Hz,则允许通过最高谐波次数为 24000/B 。4. 数字通信系统主要技术指标为传输速率、出错率、信道容量。5. 实现数据交换方法主要有电路交换、报文交换及分组交换。6. RS232 串口标准传输 方式为单端收发, RS485 标准传输方式为平衡传输方式。7. 常用的软件调试方式有强

2、行排错法、回溯排错法、归纳排错法及演绎排错法。8. MSComm 控件传输数据 类型可分为纯文本数据和二进制数据。9. 使用 WinAPI 编写串口通信程序读写操作有同步和异步两种方式。10. 基于 WinAPI 串口通信程序数据接受主要有查询和事件驱动两种方式。11. Windows 多线程编程方式主要有 Win32API、标准 C 库以及 MFC 类库三种方式。12. 在 Windows 多线程编程方式中,线程之间主要采用全局变量和自定义消息两种方式进行通信。13. Win32API 提供临界区、互斥对象、 信号量及事件 对象实现线程之间的同步。14. 控制网络和信息网络集成主要采用网络互

3、联、动态数据交换及数据库技术。15. 软件体系结构主要包括 B/S、C/S 及单机三种模式。二、 简单题1、试阐述网络体系结构、层次模型及协议之间的关系。参考答案:层次模型决定是网络模型的分层数及每层的功能定义;协议描述对等层之间的数据传输方式;网络体系结构包括层次模型及协议两个方面。2、 试阐述协议、服务、接口之间的关系;参考答案:服务即功能;接口即调用方式;协议则是服务的实现方式。三者是紧密相关的。3、 在计算机和单片机通信过程中,考虑下位机(单片机)程序为测试程序,上位机(PC)程序为被测试程序,试举例说明二者正常数据采集(通信)过程。参考答案:4、 试说明 MSComm 控件 RThr

4、eshold 属性含义。参考答案:该属性是一个阈值。当接受缓冲区中字符数达到阈值时,MSComm 控件产生 OnComm 事件,并且 CommEvent 属性会设置为 ComEvReceive,即接受事件。若设置为 0 时,则不论接受缓冲区中有多少字符,都不会 产生 OnComm 事件。5、 试说明 MSComm 控件 SThreshold 属性含义。参考答案:该属性是一个阈值。当发送缓冲区中的字符数达到阈值时,MSComm控件将产生 OnComm 事件,并且 CommEvent 属性被设置为 CommEvSend 值。6、 假设串口采用半双工方式,使用一问一答方式通信协议,接受数据长度存在1

5、0 字节、15 字节和 20 字节三种可能性的情况下, 简要说明接受数据的实际处理方法。参考答案:置 RThreshold 为 10,在 OnComm 事件中 预读 10 个字节,判断是否完整帧。若是完整帧,则设置 InputLen 为 0 或 10,然后使用 GetInput()读取即可。否则设置 InputLen 为 5,然后 GetInput()读取,与前 10 个字节合并一帧,判断是否完整。如是非完整帧则设置 InputLen 为 5,然后 GetInput()读取。7、 假设串口采用半双工方式,使用一问一答方式通信协议,接受数据长度长度不确定的情况下,简要说明接受数据实际处理方法:参

6、考答案:数据通常包含有特定格式的数据头,可以通过数据头计算出整个数据帧的长度。假定这些特定格式的数据头长度为 10 字节。按照下述步骤处理:设置RThreshold=10,在 OnComm 事件中首先设置 InputLen=10,使用 GetInput()函数读取缓冲区,并根据读取数据判断整个数据帧长度。然后读取 InBufferSize 属性值,并判断该值是否为整个数据帧长度与 10 之差;若不是,则反复读取,直至 该值为整个数据帧长度与 10 之差。此时设置 InputLen=0 或 InBufferSize 值,并使用 GetInput( )函数读取缓冲区,将 读取数据与前 10 个数据

7、合并成一个完整的数据帧。8、 简要说明采用 MSComm 控件进行串口数据采集程序设计步骤。参考答案:加载控件;初始化及打开串口;事件处理;关闭串口;通信协议约定。9、 简要说明在基于对话框程序中使用 MSComm 控件的操作步骤。参考答案:拖放控件图标至窗口,创建控件 ID;在对话 框头文件申明 CMSComm类变量及引用控件类头文件;创建 CMSComm 实例;建立控件事件响 应代码框架。10、简要说明 WinAPI 串口通信同步查询编程方式操作步骤。参考答案:CreateFile (非重叠方式); 初始化串口句柄; WriteFile(发送数据); ReadFile (读 取数据);Cl

8、oseFile (关闭串口)。11、简要说明 WinAPI 串口通信异步重叠 I/O 查询编程方式操作步骤。参考答案:定义全局变量;创建串口;发出读写操作;读写线程函数的建立; 关闭串口;12、简要说明 Windows 编程中 HANDLE(句柄)的概念。参考答案:指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。13、简要说明 Windows 多线程编程概念。参考答案:每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一

9、组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它 负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程。线程和进程的区别在于子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约 CPU 时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和 CPU。13、简要说明 Windows 中线程和进程的关系。参考答案:进程

10、:进程是一个程序实例;进程占据 4GB 地址空 间,在该空间存放应用程序执行所需要的各种资源;Win32 进程没有活力,是静态的。 线程:线程是 CPU 调度计算任务的最小单位;Win32 进程创建时,会自动创建一个主线程;主线程可以创建其它线程(辅助线程)。14、简要说明 Windows 中终止线程的方法。参考答案:终止线程有三种方法:线程函数自然退出;内部使用退出函数AfxEndThreadExitThread_endthread;外部使用 TerminateThread 函数。15、如何在 MFC 类库中使用自定义消息实现线程之 间通信?参考答案:(1) 声明自定 义消息:在头文件顶部加

11、入消息名称声明:const WM_THREADMSG = WM_USER+100; (2) 声明消息响 应函数:在头文件/AFX_MSG 和“ DECLARE_MESSAGE_MAP()”之间声明消息响应函数:Afx_msg LONG OnThreadMsg(WPARAM wParam, LPARAM, lParam)(3). 建立消息 连接:在实现文件/AFX_MSG_MAP 和“END_MESSAGE_MAP()” 之间:ON_MESSAGE(WM_THREADMSG, OnThreadMsg)(4). 编写消息响 应函数:在实现文件中,添加消息函数函数的实现体:LONG CMyClass

12、:OnThreadMsg(WPARAM wParam, LPARAM lParam) / 加入响应函数的具体处理代码(5). 寄送自定 义消息:BOOL PostMessage( HWND hWnd, UINT Msg,WPARAM wParam, LPARAM lParam);16、简要说明 OSI/RM 模型中物理层定义。参考答案:利用物理传输介质为数据链路层提供物理连接,以透明地传送比特流。物理层实际上是设备之间的物理接口,它规定了机械特性、电气特性、功能特性及过程特性。17、简要说明 OSI/RM 模型中数据链路层的主要功能。参考答案:提供可靠的比特流传输服务。18、简要说明 TCP/

13、IP 层次模型。参考答案:应用层、传输层(TCP/UDP )、互联网层、主机至网络层。19、简要说明局域网参考模型中 MAC 子层的主要功能。参考答案:决定广播信道中信道分配协议的子层。三、程序题及设计题1、MSComm 控件输入和读出数据均为 VARIANT 数据类型,考虑传输数据为纯文本,试编程实现从接受缓冲区中读取字符(给出 C+代码片段)。参考答案:VARIANT input;char charInput100;int counts = m_COMM.GetInBufferCount(); /m_COMM 为 MSComm 控件对象If (counts0) input = m_COMM

14、.GetInput( );ASSERT(input.vt = VT_BSTR);CString strInput(input.bstrVal)strcpy(charInput, strInput);2、MSComm 控件输入和读出数据均为 VARIANT 数据类型,考虑传输数据为二进制,试编程实现从接受缓冲区中读取二进制数据(给出 C+代码片段)。参考答案:VARIANT input;BYTE rxdata2048; COleSafeArray safeArray;input = m_COMM.GetInput( ); / 其中 m_COMM 为 MSComm 控件对象safeArray =

15、input;long len = safeArray.GetOneDimSize( );for(long k=0; klen; k+) safeArray.GetElement(3基于多线程技术、事件驱动方式实现串口双机数据通信程序,该程序即可作为发送方使用也可作为接受方使用。其中传输数据小于 64M;请求包、普通数据包、结束包及响应包帧格式表示如下。请求包:普通数据包:结束包:响应包:请设计事件处理函数和消息响应函数的流程图。参考答案:事件处理函数处理流程图消息响应函数处理流程图:其中发送状态 1 态:发送操作已经开始,请求包已经发出;2 态:第一个普通数据包已经发出,等待接受方响应;3 态

16、:结束数据包已发送,等待接受方响应;接受 0 态:等待发送方请求包;1 态:等待接受普通或结束数据包。四、程序阅读题1、HANDLE hCOM; hCOM = CreateFile (“ COM2”, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if ( hCOM != INVALID_HANDLE_VALUE) SetupComm(hCOM, 1024, 1024); DCB myDCB; GetCommState(hCOM, myDCB.BaudRate = CBR_19200; myDCB.fBinary = TRUE; myDCB.fParity = TRUE; myDCB.ByteSize = 8; myDCB.Parity = ODDPARITY; myDCB.StopBit = ONESTOPBIT; SetCommState(hCOM, Else

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。