问答题
试题一(共15分)
阅读下列说明和图、表,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
某车载导航系统的结构如图1-l所示,由导航处理系统和显示系统两部分组成。导航处理系统安装在某型车的设备区,显示系统安装在某型车的前方,便于驾驶员观看和操作。
问答题
[问题1](6分)
GPS天线接收卫星信号,将定位信息以帧的形式,通过RS232串行接口传输给主处理机模块。通常RS232的管脚规格如表1-1所示。
采用RS232通信,如果发送的数据量超过接收方缓冲区时,可能在接收方缓冲区因处理时间延迟等导致接收数据丢失。因此,需要进行流量控制。
【正确答案】 (1)RXD和TXD(或者TXD和RXD)
(2)RTS和CTS(或者CTS和RTS)
(3) 993.75
【答案解析】 本题主要考查嵌入式系统软硬件协同设计中串口RS232的基本软硬件应用知识。
在RS-232标准中,字符是以将比特串一个接一个的串行(serial)方式传输,优点是传输线少,配线简单,传送距离可以较远。最常用的编码格式是异步起停(asynchronous start-stop)格式,它使用一个起始比特后面紧跟7或8个数据比特(bit),然后是可选的奇偶校验比特,最后是一或两个停止比特。所以发送一个字符至少需要10比特,带来的一个好的效果是使用全部的传输速率,发送信号的速率以10划分。
RS-232设计之初是用来连接调制解调器做传输之用,也因此它的脚位意义通常也和调制解调器传输有关。RS-232的设备可以分为数据终端设备(DTE,Data Terminal Equipment,For example,PC)和数据通信设各(DCE,Data Communication Equipment)两类,这种分类定义了不同的线路用来发送和接受信号。一般来说,计算机和终端设备有DTE连接器,调制解调器和打印机有DCE连接器。使用中采用配线分接器测试连接,或者用试误法来判断电缆是否工作,常常需要参考相关的文件说明。RS-232指定了20个不同的信号连接,由25个D-sub(微型D类)管脚构成的DB-25连接器。很多设备只是用了其中的一小部分管脚,出于节省资金和空间的考虑不少机器采用较小的连接器,特别是9管脚的D-sub或者是皿。9型连接器广泛使用在绝大多数PC机和其他许多设备上。DB-25和DB-9型的连接器在大部分设备上是雌型,但不是所有的都是这样。
在使用RS232进行数据传输时,RXD和TXD管脚被用来进行数据的接收和发送,RS232的流控方式包括无流控,软件流控和硬件流控三种。无流控是指没有流控功能。软件流控也称之为XON/XOFF流控,使用控制字符XON、 XOFF来实现。在RS232数据通信过程中,如果发送方收到XOFF字符则停止发送数据,反之如果收到XON字符则重新开始发送数据。XON一般定义为十六进制数0xll,XOFF为十六进制数0x13。硬件流控又分为DSR/DTR流控和CTS/RTS流控。硬件流控是通过硬件的高低电乎来通知发送方,接收方的缓冲区是否快满了。CTS/RTS流控时,RS232(DB9)的8引脚为RTS,7引脚为CTS。DSR/DTR流控时,RS232(DB9)的6引脚为DSR,4引脚为DTR。
在使用RS232进行数据传送时,需要注意其配置方式,包括流控位宽,起始位宽等。在该题目中,数据位宽为8bit,停止位为1bit,无别的流控位,因此,每个字节传输需要的位宽为9bit,按照9600bps的速率进行传输时,每个字节需要的时间为9/9600=0.9375ms,因此传输4字节需要的时间为4×0.9375ms=3.75ms。在进行100次的传输中,每隔10ms传输一次,又由于同时忽略了其他调度时间,由于3.75小于10,可知,在每10ms传输一次的过程中肯定是可以将对应的4字节数据传输完毕。因此,在100次的传输中,前99次传输需要的时间是99×10ms=990ms,最后一次也就是第100次传输消耗的时间为3.75ms,因此,总共需要的时间为990ms+3.75ms=993.75ms。
【正确答案】 (1) !(*Mutex[0])或者*Mutex[0]==0x00或者*Mutex[0]=0
(2) *Mutex[0]=0x00或者*Mutex[0]=0
(3) len=Read_Buffer(1,Data)
【答案解析】 本题考查嵌入式系统中的C程序设计,要求考生正确使用软件锁。
在本题中主处理机模块与信号处理模块问通过双端口存储器进行数据交换。由信号处理模块发送数据,主处理机模块接收数据。
在本题中给出了很多假设条件,如将双端口存储器空间划分为两个缓冲区,两个缓冲区分别交替地接收信号处理机传输来的最新数据;再如假设双端口存储器中不提供硬件信号量,两个缓冲区间的互斥操作由软件标记实现,软件对双端口存储器的单次操作(读写一个字的操作)为原子操作。同时本题也给出了软件程序的架构,BufferFlag为缓冲区有无新数据的标志,Mutex为软件锁。
在数据处理模块端的初始化程序INIT_PPC()中,BufferFlag和Mutex被分配在缓冲区的前端,并被初始化为无数据和末锁定。
信号处理模块写数据程序DSP_Write_Data()中,初始化与数据处理模块端类似,同样以BufferFlag表示与数据处理模块端的对应的标志,即两端操作的是相同的地址空间;同样Mutex也表示与数据处理模块端的对应的软件锁,即两端操作的是相同的地址空间。信号处理模块写数据程序DSP_Write_Data)是一个无限循环程序,在等待信号处理模块产生新的数据,之后就将数据写入双缓冲Data中。具体过程如下:
1)循环等待新数据;
2)如果缓冲区0末被锁定,则:
(1)缓冲区0加锁;
(2)写数据到缓冲区0;
(3)标记缓冲区0未有数据;
(4)缓冲区0解锁。
3)如果缓冲区0已被锁定,则对缓冲区1重复上述步骤。
在数据处理模块端读数据程序PPC_Read_Data()首先判断双缓冲有无数据,如果缓冲区0有数据,再判断缓冲区0是否加锁,如果末加锁,则先加锁,再读数据,再解锁。对缓冲区1同样如此处理。
问答题
[问题3](3分)
请回答关于面板按键设计过程中的下列问题,将答案填写在答题纸的对应栏中。
在进行面板键盘处理设计时,通常在扫描键盘过程中,按键会产生机械抖动。针对抖动问题,王工认为只有道过硬件设计才能消除抖动,而李工认为用软件方法就可以解决该问题。针对抖动问题,你认为可以采用哪类方式消除?
【正确答案】 硬件方法和软件方法都可以。
【答案解析】 在一般的按键设计中,通常的按键所用开关为机械弹性开关。由于机械触电的弹性作用,按键在闭合及断开的瞬间均伴随有一连串的抖动。键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅作一次处理,必须去除抖动。消除抖动的方法有硬件和软件两种方法。硬件方法常用专用的去抖芯片或者自己组装一个双稳态消抖电路,就是两个与非门构成的RS触发器。
软件方法是当检测出键闭合后执行一个10ms~20ms的延时程序,再一次检测键的状态,如仍保持闭合状态,则确认真正有键按下。
硬件方法和软件方法都可以消除抖动问题。