目前的计算机大多采用冯诺依曼结构,无论是我们使用的个人电脑、手机(现在的智能手机本身也是计算机)还是企业使用的服务器或者小型机都是计算机,因此也都遵循此结构。计算机组件可以划分为5类,分别是:运算器、控制器、存储器、输入设备和输出设备。在现代计算机中,CPU同时包含了运算器和控制器;鼠标键盘和显示器则属于输入和输出设备;内存和硬盘则属于存储器,具体如图所示。
无论是输入输出设备还是存储设备,都是需要与CPU交互的,而与CPU交互则是通过数据线进行的。比如鼠标键盘,或者硬盘等都是通过数据线与CPU进行数据交互,接受CPU控制的。在上图中我们看到的是一个示意图,实际上数据线一般是由多根铜线构成的,如硬盘与CPU之间的数据线。
如果我们仔细观察一下就会发现,其实存储器和CPU之间也是输入输出的关系,他们之间也是通过铜线相连接的。这样,计算机其实就简化为接收输入信息,处理之后发出输出信息的设备。比如我们移动鼠标,其实就是从鼠标接收相应的数据,然后经过处理后在显示器显示移动的过程。而显示移动过程无非是通过数据线发送数据给显示器。甚至都不需要输入都可以直接进行输出,比如我们安装软件的时候,进度条的更新就是软件控制的,并不需要我们有任何输入。
在计算机领域,除了上面介绍的个人电脑、手机和服务器外,还有一种非常微型的计算机,我们通常称为单片机。单片机与普通计算机的结构一样,但在一个芯片中包含了CPU和类似内存和硬盘功能的组件。简而言之,一个芯片就是一台计算机系统。当然,这种计算机系统的计算能力要差很多。
通常,这种微型的计算机系统应用在对计算能力需求不太强烈的地方,比如空调、洗衣机或者是其他小型电器当中。当然,一个单独的芯片并不能独立工作,因为计算机要工作还要电源等其他基础需求。下面就是一个可以独立工作的开发板(Arduino),这个开发板就是一个可以独立运行的计算机系统。
在这个开发板中有电源输入接口、还有与开发环境连接的USB接口以及很多端口。这里端口就是与外面设备连接的接口,可以理解为我们上文中说的数据线。
这里的端口有很多种类,其中最简单的两类是数字端口和模拟端口。数字端口可以输出0或者1,其中0用低电平表示,而1则用高电平表示(一般是5V)。模拟端口则可以输出0~5V之间的任意电压。需要注意的是,这里的端口不仅仅可以作为输出,还可以作为输入。