3.1.4 GPIO/PWM/ADC 接口的实现和 Hack 从前面的框图可以发现,Galileo 上对外的 GPIO/PWM/ADC 接口并不是直接从 Quark 芯片中直接提供的,而是采用了额外的芯片来实现,Quark CPU 与这些接口芯片再使用 SPI/I2C 进行连接。 这样做自然有不少的好处,比如可以做到电气隔离。Quark 处理器采用 3.3V 电平,因此也无法直接将自身的 GPIO 与 Arduino 接口直接连接。也可以避免用户由于连线错误连接直接导致 Quark 芯片烧毁的可能。同时也提高了系统的灵活度。 图:用于扩展 GPIO/PWM/ADC 的接口芯片 通过分析这些新品的数据手册,在了解 Galileo 的实现细节的同时,还可以发现更多可以用来 Hack 的特性。比如用于实现 GPIO/PWM 信号扩展的 CY8C9540A 芯片的框图: 图:CY8C9540A IO 扩展芯片框图,图片来自[9] 从芯片框图可知,该芯片除了提供了 PWM/GPIO 的信号扩展外,还自带了一个可以被 Quark 使用的 EEPROM,可以存储 11kbyte 的数据[9],用户可以使用 EEPROM 库来操作他。此外,该芯片实际提供了 8 组 PWM 口,多于 Intel Galileo手 册中描述的 6 组。不过额外的 PWM 输出是无法通过使用 Arduino IDE 来使用了,这便是今后可以 hack 的部分。 观察用于数模信号采集的 ADC 芯片 AD7298,发现性能也尚可。具有 12bit 1Msample/s 的采集能力。这样的性能虽然不算高,但比基于 AVR 芯片的 Arduino 强很多,与目前的一些 32bit ARM MCU(如 STM32)的 ADC 处于同一等级。 3.1.5 SD 读卡器 Intel Galileo 上的 SD 读卡器直接与 Quark 处理器相连接。这个读卡器比较吸引人的特点在于在 Galileo 启动时,将尝试引导位于 SD 卡上的操作系统。就像 PC 上的引导 U 盘一样。用户可以将自定义的操作系统放置于 SD 卡,使得 Galileo 运行其他的系统成为可能。关于这点,我将在后续软件构架和可能性探讨部分具体涉及。 图:Intel Galileo 支持从 SD 卡加载自定义操作系统 |