单片机 嵌入式面经 笔试题
3.I/O接口(17道)
3.1 GPIO 口一般有哪三个寄存器?
以S3C2410为例,有控制寄存器、 数据 寄存器、上拉寄存器。
    
3.2 GPIO 的输入输出模式有哪些?
答案:
(1)输入模式:浮空输入、带上拉输入、带下拉输入、模拟输入。
(2)输出模式:开漏输出、推挽输出、开漏复用输出、推挽复用输出。
解读:
| 
                 浮空输入 _IN_FLOATING  | 
            
                 浮空输入,可以做 KEY识别。  | 
        
| 
                 带上拉输入 _IPU  | 
            
                 IO 内部上拉电阻输入。  | 
        
| 
                 带下拉输入 _IPD  | 
            
                 IO 内部下拉电阻输入。  | 
        
| 
                 模拟输入 _AIN  | 
            
                 应用 ADC模拟输入,或者低功耗下省电。  | 
        
| 
                 开漏输出 _OUT_OD  | 
            
                 IO 输出0 接GND ,IO 输出1 则悬空,需要外接上拉电阻才能输出高电平。当输出为 1 时,IO 口的状态由上拉电阻拉高,但同时IO 口也可由外部电路拉低,可以通过输入 数据 寄存器读取电平变化,实现 C51的 IO双向功能。  | 
        
| 
                 推挽输出 _OUT_PP  | 
            
                 IO 输出0 接GND , IO 输出1 接 VCC ,读输入值是未知的。  | 
        
| 
                 复用功能的推挽输出 _AF_PP  | 
            
                 片内外设功能( I2C的 SCL,SDA)。  | 
        
| 
                 复用功能的开漏输出 _AF_OD  | 
            
                 片内外设功能( TX1,MOSI,MISO.SCK.SS)  | 
        
| 
                 总线接口  | 
            
                 串 /并  | 
            
                 同步 /异步  | 
            
                 工作方式  | 
            
                 速率  | 
            
                 线路  | 
            
                 距离  | 
            
                 大小端  | 
        
| 
                 UART  | 
            
                 串行  | 
            
                 异步  | 
            
                 全双工  | 
            
                 慢,最快只有 1.5Mbps  | 
            
                 3 线:RX 、TX 、GND  | 
            
                 远, RS-485可达 1200m  | 
            
                 小端模式  | 
        
| 
                 USB  | 
            
                 串行  | 
            
                 同步  | 
            
                 半双工  | 
            
                 快, USB3.0可达 5Gbps  | 
            
                 4 线:Vbus 、GND 、D+ 、D-  | 
            
                 近,不超过 5m  | 
            
                 小端模式  | 
        
| 
                 SPI  | 
            
                 串行  | 
            
                 同步  | 
            
                 全双工  | 
            
                 快,可达 50Mbps  | 
            
                 3 线或4 线:SCLK 、SIMO 、SOMI 、 SS  | 
            
                 远,可达 10m  | 
            
                 大端模式  | 
        
| 
                 IIC  | 
            
                 串行  | 
            
                 同步  | 
            
                 半双工  | 
            
                 慢,最快只有 3.4Mbps  | 
            
                 2 线:SCL 、SDA  | 
            
                 近,不超过 30cm  | 
            
                 大端模式  | 
        
    
(1)异步串行方式的特点:
①以字符为单位传送信息,相邻两个字符间的间隔是任意长;即字符内部各位同步,字符间异步;
②因为一个字符中的比特位长度有限,所以接收时钟和发送时钟只要相近就可以了。
(2)同步串行方式的特点:
①以 数据 块为单位传送信息,在一个 数据块内,字符与字符之间无间隔;即字符内部各位同步,字符间也同步;
| 
                 总线空闲状态  | 
            
                 SCL 和SDA 均为高电平,接上拉电阻。  | 
        
| 
                 启动信号( START)  | 
            
                 在 SCL保持高电平期间, SDA由高电平被拉低。由主控器发出。  | 
        
| 
                 数据 位传送( DATA)  | 
            
                 在 SCL保持高电平期间, SDA上的电平保持稳定,低电平为 数据 0、高电平为 数据 1。用法:主控器和被控器都可发出。  | 
        
| 
                 应答信号( ACK)  | 
            
                 在 SCL保持高电平期间, SDA保持低电平。 IIC总线上所有 数据 都是以 8位字节传送的,发送器每发送一个字节,就在第 9个时钟脉冲期间释放 SDA(高电平),由接收器反馈一个 ACK。  | 
        
| 
                 非应答信号( NACK)  | 
            
                 在 SCL保持高电平期间, SDA保持高电平。如果接收器是主控器,则它在收到最后一个字节后,发送一个 NACK,通知被控器结束 数据 发送,并释放 SDA(高电平),以便主控器发送一个 STOP。  | 
        
| 
                 停止信号( STOP)  | 
            
                 在 SCL保持高电平时间, SDA由低电平被释放(拉高)。由主控器发出。  | 
        
