• 正文
  • 相关推荐
申请入驻 产业图谱

【黑金云课堂】FPGA技术教程Linux开发:串行通信接口与实时时钟模块

05/16 10:24
418
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

Linux 应用第 16-19 节 串行通信接口与实时时钟模块,选自 ALINX 黑金云课堂 FPGA 免费直播课。该课程由 ALINX 资深工程师团队倾力打造,从 0 到 1 系统化教学,帮助每位工程师跨过 FPGA 开发门槛。

🔍 ALINX:关注 ALINX,进入视频号即可查看完整黑金云课堂 FPGA 视频教程。配合笔记学习效果更佳。

Uart 通信

UART 基础:UART 是异步串行通信协议,常用 8N1 格式(8 位数据位、无校验、1 位停止位)。Zynq UltraScale+ 提供 2 个 UART 控制器,对应设备节点 /dev/ttyPS0和/dev/ttyPS1。ttyPS0 通常作为调试串口使用。

命令行控制:使用stty命令配置串口参数(波特率、数据位等)。数据收发可直接通过echocat操作设备节点。minicom 提供交互式串口调试界面。

C 语言编程:通过termios结构体tcsetattr()配置串口。主要步骤:打开设备→配置波特率和数据格式→使用 read/write 收发数据。Demo 程序提供发送、接收、回环测试三种模式。

实践要点:硬件连接时 TX 和 RX 需交叉连接,必须共地。最常见问题是波特率不匹配导致的乱码。回环测试需要短接 MOSI 和 MISO 引脚,用于验证硬件是否正常。

SPI 通信

SPI 基础:SPI 是同步全双工串行通信协议,使用 4 根信号线(MOSI、MISO、SCLK、CS)。定义 4 种时钟模式(Mode 0-3),由 CPOL 和 CPHA 组合决定。Mode 0 最常用。

QSPI Flash:Zynq 使用 QSPI Flash 作为启动存储器,存储 FSBL、U-Boot 和内核。Linux 中作为 MTD 设备访问,使用flash_erase擦除、dd命令读写。

C 语言编程:Linux 提供spidev用户空间驱动,通过/dev/spidevX.Y访问。使用ioctl(fd, SPI_IOC_MESSAGE, &xfer)进行数据传输。Demo 程序实现 Flash ID 读取、传输测试、回环测试功能。

实践要点:SPI 模式必须匹配从设备要求。回环测试将 MOSI 和MISO 短接验证硬件。Zynq 内置 SPI 控制器最高支持 50MHz 时钟频率。

I2C 通信

I2C基础:I2C 是两线制串行总线(SDA、SCL),支持多主多从架构。使用7位地址识别设备。开漏输出需要外接上拉电阻(通常4.7KΩ)。

i2c-tools 工具集i2cdetect扫描总线设备,i2cget/i2cset读写寄存器i2cdump批量dump寄存器。是 I2C 调试的必备工具。

C 语言编程:通过/dev/i2c-X设备节点访问。使用ioctl(fd, I2C_SLAVE, addr)设置从机地址。读写 EEPROM 需要先写内存地址再读写数据,写入后需等待 5ms。

实践要点:缺少上拉电阻是最常见问题。EEPROM 写入后必须延时等待。地址冲突时可通过设备引脚修改地址。

RTC 实时时钟

RTC 基础:RTC 是掉电保持运行的独立时钟电路,由纽扣电池供电。提供年/月/日/时/分/秒时间信息和闹钟功能。Zynq 内置 RTC 控制器,也可外接 I2C RTC 芯片

命令行控制hwclock是主要操作工具(-r 读取、-w 写入系统时间、-s 同步到系统)。timedatectl提供更友好的状态查看。通过 sysfs 设置闹钟唤醒系统。

C 语言编程:使用rtc_time结构体表示时间(注意 tm_mon 范围0-11,tm_year 从1900起算)。常用 ioctl 命令:RTC_RD_TIME、RTC_SET_TIME、RTC_ALM_SET、RTC_AIE_ON。

实践要点:电池没电会导致时间丢失,需定期更换 CR2032 电池。有网络时推荐使用 NTP 校时,无网络时依赖 RTC 保持时间。

💡 完整视频讲解可前往 ALINX 视频号进行直播回看

更多细节欢迎关注我们黑金云课堂全年免费直播课, 黑金云课堂五月直播日历 我们将在每周二、三、四,同步推进 Verilog开发、Vitis开发、Linux开发三大系列,带你从零开始,稳扎稳打掌握 FPGA 开发全流程!

系列 内容定位
Verilog开发 硬件描述语言基础、逻辑设计、仿真调试
Vitis开发 Zynq软硬件协同、外设驱动、网络协议
Linux开发 嵌入式Linux系统移植、驱动编写、应用开发

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

芯驿电子自 2012 年成立以来,旗下 AUMO 与 ALINX 两大品牌,在智能车载与 FPGA 行业解决方案领域持续深耕。 ALINX 聚焦 FPGA 解决方案高端产品市场,并积极参与 FPGA 国产化应用发展。至今已推出 100 多款 FPGA SoM 模组和配套板卡,基本完成对 AMD FPGA 产品、紫光同创 FPGA 产品的全系列覆盖,产品远销海外 40 多个国家。 AUMO 专注智能车载,为自动驾驶技术开发破题。至今已推出车载仿真测试系统、视频数据采集、视频数据旁路采集分流、视频数据注入、车载摄像头、车载后视镜等产品线,满足车企和汽车产业链的车载产品开发需求。

微信公众号