1. 课程概述
1.1 全志T113芯片简介
全志T113是一颗面向嵌入式工业控制、智能家居与物联网终端的高集成度应用处理器。芯片采用双核ARM Cortex-A7架构,主频最高可达1.2GHz,内置64MB~512MB DDR3/DDR3L,支持Linux 5.4/6.1 LTS与RT-Thread双系统。
| 参数项 | 规格 |
|---|---|
| CPU | 双核 ARM Cortex-A7 @ 1.2GHz |
| 内存 | 内封 64MB~512MB DDR3/DDR3L |
| 视频解码 | H.265/H.264 1080p@60fps |
| GPIO 总数 | 最多 128 个可编程IO |
| 中断控制器 | GIC-400,支持 SPI / PPI / SGI |
| 典型功耗 | 全速 < 1.5W,待机 < 50mW |
课程选型理由: T113 在 50mm×50mm 封装内集成了电源管理、音频编解码、以太网 MAC 和大量 GPIO,非常适合 GPIO 驱动与中断响应教学的硬件平台。
1.2 GPIO 与中断概念
GPIO 基本模型
GPIO(General Purpose Input/Output)是芯片与外部世界交互的最基本接口。每个 GPIO 引脚可通过寄存器配置为输入、输出、或复用为特定外设功能。T113 的 GPIO 控制器分为多个 Port(PA~PL),每个 Port 管理 32 个引脚。
- 输入模式: 读取引脚电平(0/1),用于检测按键、传感器信号。
- 输出模式: 驱动引脚电平,用于控制 LED、蜂鸣器、继电器。
- 复用模式: 引脚分配给 UART、I2C、SPI 等外设。
- 中断模式: 引脚电平变化时触发 CPU 中断。
中断响应流程
中断是 CPU 处理异步事件的机制。当 GPIO 引脚检测到预设的边沿(上升沿/下降沿/双边沿)或电平变化时,中断控制器向 CPU 发送中断信号,CPU 暂停当前任务,跳转到中断服务程序(ISR)执行处理。
| 中断类型 | 触发条件 | 典型应用 |
|---|---|---|
| 上升沿触发 | 引脚从低电平变为高电平 | 按键按下检测 |
| 下降沿触发 | 引脚从高电平变为低电平 | 按键释放检测 |
| 双边沿触发 | 电平任意变化 | 编码器脉冲计数 |
| 低电平触发 | 引脚持续为低电平 | 紧急停止信号 |
1.3 LED 与蜂鸣器硬件原理
LED 驱动电路
LED(发光二极管)是单向导电器件,正向导通电压通常为 1.8V~3.3V,工作电流 5mA~20mA。GPIO 输出高电平时,需串联限流电阻防止过流损坏引脚或 LED。
限流电阻计算: R = (VOH - VF) / IF。例如 T113 GPIO 高电平 3.3V,LED 正向压降 2.0V,目标电流 10mA,则 R = (3.3 - 2.0) / 0.01 = 130Ω,取标称值 150Ω。
蜂鸣器驱动电路
蜂鸣器分为有源(内部含振荡源,通电即响)和无源(需 PWM 方波驱动)两种。T113 GPIO 直接驱动能力有限(通常 < 8mA),驱动蜂鸣器需通过三极管或 MOSFET 放大电流。
| 器件 | 类型 | 驱动方式 | GPIO 连接 |
|---|---|---|---|
| LED | 无源 | GPIO 高电平 + 限流电阻 | 直接连接 |
| 有源蜂鸣器 | 有源 | GPIO 高电平 + NPN 三极管 | 通过三极管基极 |
| 无源蜂鸣器 | 无源 | GPIO 输出 PWM 方波 + 三极管 | 通过三极管基极 |
1.4 课程目标与前置知识
课程目标
完成本课程后,学员应具备以下能力:
- 理解 T113 GPIO 控制器寄存器模型,能够通过寄存器操作控制引脚电平。
- 编写 Linux 内核 GPIO 字符设备驱动,实现 LED 亮灭与蜂鸣器鸣叫控制。
- 配置 GPIO 中断,编写中断服务程序响应按键或外部触发信号。
- 实现用户空间与内核空间的交互,通过 ioctl 或 sysfs 接口控制设备。
- 调试驱动问题,使用 devmem、printk、示波器验证硬件行为。
前置知识要求
| 知识领域 | 具体要求 | 推荐学习资源 |
|---|---|---|
| C 语言编程 | 指针、结构体、位运算、函数指针 | 《C Primer Plus》第 6 版 |
| Linux 基础 | 文件系统、命令行、交叉编译 | 《鸟哥的 Linux 私房菜》 |
| 嵌入式基础 | ARM 体系结构、寄存器、中断向量 | 《ARM 嵌入式系统开发》 |
| 硬件基础 | 数字电路、三极管开关、LED 限流 | 《电子学》第 2 版 |
硬件准备提醒: 课程实践需要全志 T113 开发板(如芒果派 MQ-R)、LED(3mm 红色)、有源蜂鸣器(5V)、NPN 三极管(S8050)、电阻(150Ω、1kΩ)、面包板及杜邦线。请提前准备,避免影响实验进度。