计算机控制工程复习(含答案)资料

上传人:pu****.1 文档编号:549110779 上传时间:2023-08-29 格式:DOCX 页数:16 大小:97.97KB
返回 下载 相关 举报
计算机控制工程复习(含答案)资料_第1页
第1页 / 共16页
计算机控制工程复习(含答案)资料_第2页
第2页 / 共16页
计算机控制工程复习(含答案)资料_第3页
第3页 / 共16页
计算机控制工程复习(含答案)资料_第4页
第4页 / 共16页
计算机控制工程复习(含答案)资料_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《计算机控制工程复习(含答案)资料》由会员分享,可在线阅读,更多相关《计算机控制工程复习(含答案)资料(16页珍藏版)》请在金锄头文库上搜索。

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. 控制网络和信息网络集成主要采用网络互联、动态数据交换及数据库技术。15. 软件体

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

4、C3YACK斗30 24 36 8A5YACK参考答案:4、试说明 MSComm 控件 RThreshold 属性含义。参考答案:该属性是一个阈值。当接受缓冲区中字符数达到阈值时, MSComm 控件产生 OnComm 事件,并且 CommEvent 属性会设置为 ComEvReceive, 即接 受事件。若设置为 0时,则不论接受缓冲区中有多少字符,都不会产生 OnComm事件。5、试说明 MSComm 控件 SThreshold 属性含义。 参考答案:该属性是一个阈值。当发送缓冲区中的字符数达到阈值时 ,MSComm 控件将产生 OnComm 事件,并且 CommEvent 属性被设置为

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

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

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

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

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

10、Windows中线程和进程的关系。参考答案:进程:进程是一个程序实例;进程占据 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 CMy

12、Class: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.GetInp

14、ut( );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 = input;long

15、len = safeArray.GetOneDimSize( ); for(long k=0; klen; k+) safeArray.GetElement(&k, rxdata+k);3基于多线程技术、事件驱动方式实现串口双机数据通信程序,该程序即可作为发送方使用也可作为接受方使用。其中传输数据小于64M ;请求包、普通数 据包、结束包及响应包帧格式表示如下。请求包:1字节4个字节1个字节1个字节ENQ文件尺寸文件名长度文件名校验普通数据包:1字节值为2)2个字节12)1024个字节 1个字节STX序号数据校验结束包:1字节值为3) 2个字节 2个字节1个字节ETX数据长度序号数据校验响应包:名称取值含文ACK6接受方收到正确数据NAK21接受方收到数据有误CAN24接受方取消了发送方方请求请设计事件处理函数和消息响应函数的流程图。参考答案:事件处理函数处理流程图其中发送状

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

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号