复古硬件重生:基于SCC68070和SCC66470的现代单板计算机设计
1. 项目背景与目标
这个项目源于我对复古计算机硬件的长期痴迷。作为一名硬件爱好者,我一直对上世纪90年代那些高度集成的处理器和视频控制器充满好奇。特别是飞利浦CD-i游戏机中使用的SCC68070和SCC66470这对组合,它们代表了那个时代嵌入式系统的巅峰设计。
SCC68070是摩托罗拉68000系列的一个高度集成版本,而SCC66470则是专为视频和系统控制设计的配套芯片。我的目标不是简单地复制CD-i系统,而是想探索这对芯片在现代单板计算机(SBC)设计中的可能性。这包括:
- 评估这对芯片组合在当代硬件环境下的性能表现
- 研究如何利用它们的特性构建一个功能完整的开发平台
- 了解这种架构的局限性和可能的扩展方式
2. 硬件选型与架构设计
2.1 核心芯片特性分析
SCC68070作为项目的大脑,有几个关键特性值得关注:
- 指令集兼容性:完全兼容经典的68000指令集,这意味着有丰富的开发工具和文档支持
- 集成外设:内置了UART、定时器和中断控制器,减少了外围电路的需求
- 内存管理:支持最大16MB的地址空间,对于复古硬件项目来说绰绰有余
SCC66470则负责视频和系统控制:
- 视频输出:支持多种分辨率,最高可达720x576 (PAL)或720x480 (NTSC)
- 音频处理:内置数字音频接口,可以连接DAC芯片
- DMA控制器:减轻CPU负担,提高数据传输效率
2.2 系统架构设计
基于这些特性,我设计了如下的系统架构:
CPU子系统:
- SCC68070 @ 15MHz (与原始CD-i相同频率)
- 512KB SRAM作为主内存
- 1MB Flash用于存储固件
视频子系统:
- SCC66470作为主视频控制器
- 使用现代HDMI转换芯片提供视频输出
- 保留原始的复合视频接口
存储系统:
- SD卡接口用于存储程序和媒体文件
- 可选I2C EEPROM用于配置存储
扩展接口:
- 保留原始的CD-i扩展总线
- 添加现代USB接口用于调试和开发
3. 硬件实现细节
3.1 原理图设计要点
在设计原理图时,有几个关键点需要特别注意:
电源管理:
- 需要为SCC68070提供稳定的5V和3.3V电源
- 视频部分需要额外的滤波电路
- 建议使用LDO稳压器而非开关电源,减少噪声
时钟电路:
- 主时钟使用15MHz晶振
- 需要为视频部分提供独立的27MHz时钟
- 所有时钟信号都需要适当的终端匹配
信号完整性:
- 地址和数据总线需要串联终端电阻
- 关键信号线(如CLK、RESET)需要特别注意走线长度
- 建议使用4层PCB设计,有完整的地平面
3.2 PCB布局建议
基于我的经验,PCB布局应该遵循以下原则:
分区布局:
- 将数字部分、模拟部分和电源部分物理隔离
- 视频输出电路应远离高频数字信号
走线策略:
- 保持地址和数据总线长度匹配(±5mm)
- 关键信号线避免过孔,优先布在内层
- 电源走线要足够宽,必要时使用铜皮填充
散热考虑:
- SCC68070在15MHz下功耗约1.5W,需要适当散热
- 视频芯片工作时温度较高,建议增加散热片
4. 软件开发环境搭建
4.1 工具链配置
由于SCC68070使用68000指令集,我们可以利用现有的开发工具:
编译器选择:
- GNU GCC的m68k-elf版本
- 或者更专业的HiSoft C编译器
调试工具:
- GDB配合JTAG调试器
- 自制串口调试监控程序
模拟器:
- MAME可以模拟CD-i硬件环境
- 用于前期开发和测试
4.2 启动代码开发
系统启动代码需要处理以下关键任务:
硬件初始化:
- 设置堆栈指针
- 初始化内存控制器
- 配置时钟和PLL
外设配置:
- 设置UART波特率
- 初始化视频控制器
- 配置中断向量表
运行时环境:
- 建立C运行时环境
- 初始化全局变量
- 跳转到main函数
5. 常见问题与解决方案
5.1 硬件调试问题
在原型制作过程中,我遇到了几个典型问题:
系统无法启动:
- 检查复位电路是否正常工作
- 确认时钟信号是否稳定
- 测量各电源电压是否在允许范围内
视频输出不稳定:
- 检查视频时钟的抖动
- 确认视频信号终端匹配
- 调整输出电平
存储器访问错误:
- 检查地址总线连接
- 确认芯片选择信号时序
- 调整存储器访问周期
5.2 软件开发陷阱
在软件开发过程中,需要注意以下几点:
字节序问题:
- 68000是大端架构,与常见的小端架构不同
- 数据结构定义需要特别注意
中断处理:
- 中断向量表必须正确设置
- 中断服务程序要尽可能短小
- 注意保存和恢复寄存器
性能优化:
- 合理使用DMA传输
- 避免频繁的内存访问
- 利用CPU缓存特性
6. 项目进展与未来计划
目前项目已经完成了以下里程碑:
硬件设计:
- 完成了原理图设计
- 制作了第一版PCB原型
- 基本功能验证通过
软件开发:
- 建立了基本的开发环境
- 实现了简单的视频输出
- 开发了基本的调试工具
未来的计划包括:
硬件改进:
- 优化电源设计
- 增加更多外设接口
- 改进散热方案
软件生态:
- 开发简单的操作系统
- 实现文件系统支持
- 构建图形用户界面
应用开发:
- 开发复古游戏演示
- 实现多媒体播放功能
- 构建开发工具链
这个项目虽然进展缓慢,但每一步都充满了发现的乐趣。通过这个项目,我不仅深入了解了90年代的硬件设计哲学,也掌握了将复古技术应用于现代开发环境的实用技巧。
