问答题 某机械设备的控制器,其基本功能要求有:
需要有8个数字量输入,用于采集设备的状态信息;且需要8个数字量输出,用于控制设备动作。
具备一个RS-232接口,可以和上位机连接,接收上位机发送的命令及参数。
需要提供一个基准定时信号,定时时间间隔为0.01秒。
需要彩色LCD显示器,用于显示状态信息等。
根据上述功能要求的描述,若采用S3C2410芯片为核心来构建该机械设备控制器的硬件平台,请完善下面的叙述和C语言程序(需要使用的控制寄存器的格式见说明)。
说明:下面是试题解答时需要用到的寄存器格式及相关说明。
1)端口C的控制寄存器(GPCCON)
引脚 GPCCON的位 描述
GPC15 [31:30] 00=输入,o1=输出,10=VD7,11=保留
GPC14 [29:28] 00=输入,01=输出,10=VD6,11=保留
GPC13 [27:26] 00=输入,01=输出,10=VD5,11=保留
GPC12 [25:24] 00=输入,01=输出,10=VD4,11=保留
GPC11 [23:22] 00=输入,01=输出,10=VD3,11=保留
GPC10 [21:20] 00=输入,01=输出,10=VD2,11=保留
GPC9 [19:18] 00=输入,01=输出,10=VD1,11=保留
GPC8 [17:16] 00=输入,01=输出,10=VD0,11=保留
GPC7 [15:14] 00=输入,01=输出,10=LCDVF2,11=保留
GPC6 [13:12] 00=输入,01=输出,10=LCDVF1,11=保留
GPC5 [11:10] 00=输入,01=输出,10=LCDVF0,11=保留
CPC4 [9:8] 00=输入,01=输出,10=VM,11=IIS数据输出
GPC3 [7:6] 00=输入,01=输出,10=VFRAME,11=IIS数据输入
CPC2 [5:4] 00=输入,01=输出,10=VLINE,11=保留
CPC1 [3:2] 00=输入,01=输出,10=VCLK,11=保留
GPC0 [1:0] 00=输入,01=输出,10=LEND,11=保留
2)端口D的控制寄存器(CPDCON)
引脚 GPCCON的位 描述
GPD15 [31:30] 00=输入,01:输出,10=VD23,11=保留
CPD14 [29:28] 00=输入,01=输出,10=VD22,11=保留
GPD13 [27:26] 00=输入,01=输出,10=VD21,11=保留
GPD12 [25:24] 00=输入,01=输出,10=VD20,11=保留
GPD11 [23:22] 00=输入,01=输出,10=VD19,11=保留
GPD10 [21:20] 00=输入,01=输出,10=VD18,11=保留
GPD9 [19:18] 00=输入,01=输出,10=VD17,11=保留
GPD8 [17:16] 00=输入,01=输出,10=VD16,11=保留
GPD7 [15:14] 00=输入,01=输出,10=VD15,11=保留
GPD6 [13:12] 00=输入,01=输出,10=VD14,11=保留
GPD5 [11:10] 00=输入,01=输出,10=VD13,11=保留
GPD4 [9:8] 00=输入,01=输出,10=VD12,1 1=保留
GPD3 [7:6] 00=输入,01=输出,10=VD11,11=保留
GPD2 [5:4] 00=输入,01=输出,10=VD10,11=保留
GPD1 [3:2] 00=输入,01=输出,10=VD9,11=保留
GPDO [1:0] 00=输入,01=输出,10=VD8,11=保留
3)端口E的控制寄存器(GPECON)
引脚 GPCCON的位 描述
GPE15 [31:30] 00=输入,01=输出,10=IICSDA,11=保留
CPE14 [29:28] 00=输入,01:输出,10=IICSCL,11=保留
GPE13 [27:26] 00=输入,01=输出,10=SPICLK0,11=保留
GPE12 [25:24] 00=输入,01=输出,10=SPIMOS10,11=保留
GPE11 [23:22] 00=输入,01=输出,10=SPIMIS00,11=保留
GPE10 [21:20] 00=输入,01=输出,10=SSDAT3,11=保留
GPE9 [19:18] 00=输入,01=输出,10=SSDAT2,11=保留
GPE8 [17:16] 00=输入,01=输出,10=SSDAT1,11=保留
GPE7 [15:14] 00=输入,01=输出,10=SSDAT0,11=保留
GPE6 [13:12] 00=输入,01=输出,10=SDCMD,11=保留
GPE5 [11:10] 00=输入,01=输出,10=SDLCK,11=保留
GPE4 [9:8] 00=输入,01=输出,10=IISSD0,11=IIS数据输出
GPE3 [7:6] 00=输入,01=输出,10=IISSI,11=IIS数据输入
GPE2 [5:4] 00=输入,01=输出,10=CDCLK,11=保留
CPE1 [3:2] 00=输入,01=输出,10=IISCLK,11=保留
GPE0 [1:0] 00=输入,01=输出,10=IISLRCK,11=保留
4)端口H的控制寄存器(GPHCON)
引脚 GPCCON的位 描述
GPH10 [21:20] 00=输入,01=输出,10=CLKOUT1,11=保留
GPH9 [19:18] 00=输入,01:输出,10=CLKOUT0,11=保留
GPH8 [17:16] 00=输入,01=输出,10=UEXTCLK,11=保留
GPH7 [15:14] 00=输入,01=输出,10=ILXD2,11=保留
GPH6 [13:12] 00=输入,01=输出,10=TXD2,11=保留
GPH5 [11:10] 00=输入,01=输出,10=RXD1,11=保留
GPH4 [9:8] 00=输入,01=输出,10=TXD1,11=IIS数据输出
GPH3 [7:6] 00=输入,01=输出,10=RXD0,11=IIS数据输入
GPH2 [5:4] 00=输入,01=输出,10=TXD0,11=保留
GPH1 [3:2] 00=输入,01=输出,10=nRTS0,11=保留
GPH0 [1:0] 00=输入,01=输出,10=nCTS0,11=保留
5)UART线路控制寄存器(ULCONn n可以是0、1、2)
ULCONn的位C [7] [6] [5:3] [2] [1]
描述




保留
值为0



确定红外模式
0=正常操作
模式
1=正常操作
模式
确定校验类型
0xx=无校验
100=奇校验
101=偶校验

确定停止位数
0=1位停止位
1=2位停止位


确定数据位
00=5位01=
6位
10=7位11=
8位
6)TCFGO寄存器
TCFG0的位 功能描述 初始状态值
[31:24] 保留 0x00
[23:16] 在此不用 0x00
[15:8] 确定Timer2,Timer3,Timer4的预分频系数 0x00
[7:0] 确定Timer0,Timer1的预分频系数 0x00
7)TCFG1寄存器
TCFG1的位 功能描述 初始状态值
[31:24] 保留 0x00
[23:20] 在此不用 0b0000
[19:16] 确定Timer4的分频器值
0000=20001=40010=80011=16
0b0000
[15:12] 确定Timer3的分频器值
0000=20001=40010=80011=16
0b0000
[11:8] 确定Timer2的分频器值
0000=20001=40010=80011=16
0b0000
[7:4] 确定Timer1的分频器值
0000=20001=40010=80011=16
0b0000
[3:O] 确定Timer0的分频器值
0000=20001=40010=80011=16
0b0000
说明:设置TCFG0、TCFG1可以确定预分频器系数、分频器值,如:通过设置TCFG0为0x0000001F,Timer0的预分频器系数选择为31,设置TCFG1为0x00000001,Timer0的分频器值选择为4。通过下面公式计算定时器的计数常数: 定时器输入时钟频率=PCLK/(预分频系数+1)/分频器值 计数常数=定时时间间隔/(1/定时器输入时钟频率) 预分频系数的范围为0~255,分频器值的取值范围为2、4、8、16。 8)TCON寄存器(注:此处不用的位被省略,其值默认为0x0000000)
TCON的位 功能描述 初始状态值
0x0000000
[3] 确定Timer0的自动装载功能
1=自动装载0=一次停止
0b0
[2] 确定Timer0的输出反转位
1=TOUT0反转0=TOUT0不反转
0b0
[1] 确定Timer0的更新
1=更新TCNTB0和TCMPB0 0=不更新
0b0
[0] 确定Timer0的启动/停止
1=启动0=停止
0b0
问答题 若硬件设计时采用GPIO端口E的GPE0~GPE7引脚作为8个数字量输出,那么软件设计时其初始化语句是:rGPECON=(rGPECON | 0x00005555)&______。若软件设计时需要通过GPE5引脚输出“1”来驱动执行机构动作,那么语句是:rGPEDAT=rGPEDAT | ______。(注:rGPECON是端口E的控制寄存器所对应的变量,rGPEDAT是端口E的数据寄存器所对应的变量)
【正确答案】
【答案解析】0xFFFF5555 0x0020 [解析] 本题考查以S3C2410为背景的嵌入式应用系统开发。题中应用为机械设备的控制器系统开发。包括通用I/O口GPIO的使用及相应的初始化编程。其中,GPC和GPD作为LCD显示器接口引脚,GPE作为输入输出;基于UART的RS-232接口电路设计及相应的初始化编程设置;UART的通信控制;内部定时器和计数器的设置及使用;基于S3C2410的无操作系统的嵌入式系统如何构建其启动引导程序。
和0相与清零,和1相与保持不变。和0相或保持不变,和1相或置1。00为输入,01为输出,则初始化GPIO端口E的GPE0~GPE7引脚功能为输出的语句是:rGPECON=(rGPECON | 0x00005555)&0xFFFF5555,第一空为0xFFFF5555;通过GPE5引脚输出“1”来驱动执行机构动作,则将第6位置1,即rGPEDAT=rGPEDAT | 0x0020,则第二空为0x0020。
问答题 硬件设计时,选用UART0来完成RS-232接口电路设计。在软件设计时,其初始化程序中波特率设置为9600bps,数据格式设置为:8位数据位、奇校验、1位停止位。请补充完善下面的UART0初始化函数(注:主频参数为PCLK):
void UART0_Init()
{
rGPHCON=(rGPHCON&0xFFFFFF00)|______;//端口H相应引脚功能初始化
rUFCON0=0x0;//FIFO不使能
rUMCON0=0x0:
rULCON0=______;//设置线路控制寄存器
rUCON0=0x145;//设置控制寄存器
rUBRDIV0=((int)(PCLK/______)-1);//设置波特率,小数采用四舍五入
【正确答案】
【答案解析】0x000000AA 0x23 (9600×16)+0.5[解析] 0x000000AA;8位数据位、1位停止位、奇校验。在ULCON中,[1:0]:11=8位;[2]:0=1位停止位;[5:3]:100=奇校验;[6]:0=正常操作模式。即rGPHCON=(rGPH-CON&0xFFFFFF00) | 0x000000AA,则第一空为0x000000AA。第二空此处对线路控制寄存器进行相应设置。第三空对所需的波特率进行设置。
问答题 按照上面UART0初始化函数所设置的通信速率,每秒钟最多能传输______个字节的信息。若上位机有大小为4KB的初始参数需要下载到控制器中,那么,约需传输______秒才能完成下载(1K=1024,精确到小数点后面l位数字)。
【正确答案】
【答案解析】872 4.7[解析] 按照上面UART0初始化函数所设置的通信速率,每秒钟最多能传输9600/(8+3)=872个字节的信息。若上位机有大小为4KB的初始参数需要下载到控制器中,那么,约需传输4×1024/872=4.7秒。
问答题 系统中所需要的0.01秒基准定时时间选用S3C2410芯片内部的Timer0部件来产生。若系统的主频参数PCLK为264MHz,分频器值选择为16,预分频系数选择为3,那么,Timer0的计数常数为______。软件设计时,设计了如下的Timer0初始化函数,请补充完善。(注:下面程序中⑨、⑩、 用8位十六进制数表示,
【正确答案】
【答案解析】41250 0x00000003 0x00000003 0xA122 0x00000002[解析] 定时器输入时钟频率=PCLK/(预分频系数+1)/分割器值,计数常数=定时时间间隔/(1/定时器输入时钟频率),即可得本题第一空答案。TCFG0中[7:0]位确定Timer0的预分频系数,题设为3,则第二空为0x00000003;TCFG1中[3:0]位确定Timer0的分频器值,题设为16,则第三空为0x00000003。第四空处设置的计数常数为0xA122;更新TCNTB0和TCMPB0设置第五空为0x00000002。
问答题 彩色LCD显示屏的硬件接口电路由S3C2410的专用GPIO端口______和端口______相关引脚配以驱动电路来设计。软件设计时,需要通过设置它们控制寄存器的值分别为______和______来确定它们的引脚功能。
【正确答案】
【答案解析】C D 0xAAAAAAAA 0xAAAAAAAA[解析] GPC和GPD作为LCD液晶屏接口引脚,第一空为C,第二空为D;00为输入,01为输出,将端口C和D均设置为输出,第三空和第四空均为0xAAAAAAAA。
问答题 系统的软件可以设计为在无操作系统的环境下运行。设计者自行设计系统的启动引导程序,在该程序中完成异常向量设置、堆栈指针设置以及必要的硬件初始化。ARM9体系结构中规定的IRQ异常所对应的异常向量地址为______。Timer0部件所产生的0.01秒基准时间到时将引起IRQ异常。由于IRQ异常向量地址与下一个异常向量地址之间间隔为______个字节,因此,通常在IRQ异常向量地址处设计一条转移指令。堆栈指针的设置需按工作模式来进行。设置IRQ模式下的堆栈指针,需在R0“清0”后用指令ORRR1,R0,#0x12|______和MSRCPSR_CXSF,R1来使CPU核进入IRQ模式,然后再给SP寄存器赋值作为该模式下的堆栈指针。这些初始化工作完成后,即可通过指令______来引导应用程序的主函数main()。
【正确答案】
【答案解析】0x00000018 4 0xC0 BL_main[解析] ARM9体系结构中规定的IRQ异常所对应的异常向量地址为0x00000018。IRQ异常向量地址与下一个异常向量地址之间间隔为4个字节。R0“清0”后用指令ORR R1,R0,#0x12 | 0xC0和MSR CPSR_CXSF,R1来使CPU核进入IRQ模式。可通过指令BL_main来引导应用程序的主函数main()。