mini2440开发板一些硬件介绍(PTC、定时器、串口、中断控制器、SDROAM、Norflash、Nandflash)
什么是mini2440?
mini2440开发板,是友善之臂公司基于三星公司的S3C2440A芯片,并结合了一系列的外围组件开发出来的一款嵌入式开发板。组件非常丰富,性能不错,也很常用,非常适合嵌入式系统的入门学习。如图为其逻辑视图:
S3C2440A芯片
S3C2440A基于ARM920T核心,ARM920T核心才是我们通常说的CPU、处理器,它支持16/32位精简指令集。它还实现了内存管理单元MMU。S3C2440A还提供了丰富的内部设备,为了组织和连接这些内部设备,它内部采用了先进的微控制总线构架AMBA。为了提高程序的执行速度,S3C2440A还采用了哈佛架构(高速缓冲体系结构),这一结构具有独立的16KB指令,高速缓存和16KB数据高速缓存,每个都是由具有8字长的行(line)组成的。如图为逻辑视图:
1.RTC
处理自然时间的,可以用备用电池供电维持时间。
具体功能:
1)时间:年、月、日、星期、时、分和秒,支持CPU以BCD数据的方式读写。
2)闰年发生器:支持实现和识别哪年是闰年。
3)闹钟功能:能产生闹钟定时中断或者从省电模式下唤醒开发板。
4)已经解决2000年是闰年的问题。
5)支持独立电源引脚也就是用备用电池供电的功能。
6)支持时钟节拍中断,如一秒钟内产生固定次数的中断。
2.定时器
定时器最常用的一个情景:我们让定时器每隔1ms产生一次中断,然后在中断处理程序中检查一个进程已经运行了多长时间,分配给这个进程的时间它是否已经用完,如果已经用完,就调度其他进程运行。如果没有定时器,我们在应用软件中写入一个死循环代码,操作系统立马就会被这个应用软件锁死,因为系统已经没有任何手段从这个应用程序手里夺回CPU的使用权了。
S3C2440A芯片内部有5个定时器,可以用于处理间隔时间,比如,一个进程要等待5ms后去访问硬件等。
其中定时器0、1、2、3具有脉宽调制功能。定时器4是一个无输出引脚的内部定时器。定时器0还包含用于大电流驱动的死区发生器。
这5个定时器所有的特性如下:
1)5个16位定时器。
2)2个8位预分频器和两个4位分频器。
3)可编程输出波形的占空比控制。
4)自动重载模式或单稳态脉冲模式。
5)死区发生。
3.串口
用于和其他设备通信或者传输数据,比如,连接PC输出信息,并且S3C2440A芯片内部有三个相同的串口硬件。
- S3C2440A中每个串口单元都是可以基于中断或基于DMA模式操作的。
- S3C2440A的串口包括了可编程波特率,红外发送/接收,插入1个或2个停止位,5位、6位、7位或8位的数据宽度以及奇偶校验。
- 每个串口包含一个波特率发生器、发送器、接收器和一个控制单元。
- 每个串口发送数据是可编程的。由1个起始位、5~8个数据位、1个可选奇偶校验位以及1~2个停止位组成的帧,是由行控制寄存器指定的。发送器也可以产生单帧发送期间强制串行输出为逻辑0状态的断点状态。
串口设备通信过程:
4.中断控制器
存在于S3C2440A芯片内部,是设备和CPU通信的重要机制,支持多达60个设备中断源,同时也支持中断优先级,哪些设备的中断要尽快发送给CPU内核进行处理,也可以屏蔽某个设备的中断信号。
S3C2440A中的中断控制器采用了二级中断源,就是在一级中断的几根中断信号线上连接几个设备的中断信号线。所以当中断发生时,我们就不能单纯地认为是一个设备发生了中断,而是要进一步根据次级中断的相关信息确定是哪个设备发生了中断,如图
5.SDRAM
常说的内存,mini2440开发板用了两片32MBSDRAM芯片并接在一起,一共64MB,SDRAM开始的物理地址是0x30000000。操作系统内核和各个应用软件都是放在这个里面运行的。
S3C2440A芯片内的存储器控制器包含以下特性:
1)可通过软件选择大端、小端。
2)总共8个存储器Bank,每个Bank有128MB,总共1GB地址空间。
3)除了Bank0(16/32位),其他全部Bank都可编程访问宽度(8/16/32位)。
4)6个存储器Bank为ROM、SRAM等。其余2个存储器Bank为ROM、SRAM、SDRAM等。
5)7个固定的存储器Bank起始地址,1个可变的存储器Bank起始地址,并且Bank大小可编程。
6)所有存储器Bank的访问周期可编程。
7)支持外部等待扩展总线周期。
8)支持SDRAM自刷新和掉电模式。
S3C2440A的存储地址空间
SDRAM芯片结构
内存逻辑视图
6.Norflash
Flash存储器称为闪存,它结合了ROM和RAM的特点,不仅具备电子可擦除、可编程的特点,还可以快速读写数据,而且数据不会因为断电而丢失。这种特性使它可以用于U盘、MP3、智能手机等众多移动智能设备上。
就像是掉电不会丢失数据的内存,支持在其上运行程序。mini2440开发板上有2MB的Norflash芯片,连接在S3C2440A芯片的存储控制器的Bank0上,并能通过跳线开关控制。这个芯片里烧写了一个叫superVIVI的开发板引导程序,相当于PC上的BIOS程序,它负责初始化开发板的时钟和SDRAM等其他设备,然后加载操作系统内核。
mini2440开发板上的Norflash芯片特性如下:
- 1)有22根地址信号线和16根数据信号线。
- 2)掉电不会丢失数据。
- 3)支持“片上运行”。
7.Nandflash
它需要专门设计的控制器来进行读写,一次读写最少是1页,1页最少是528B,512B数据加16B的校验信息,32页组成一个块。我们的开发板上这个芯片是64MB。可以用于操作系统构建文件系统,在其上存放用户数据、应用软件、操作系统等。它也支持系统引导,S3C2440A芯片自动把它的前4KB空间的数据读到一个内部4KB的SRAM中,把那个SRAM的首地址映射为0,S3C2440A芯片内部的CPU内核就从内部4KB的SRAM中开始运行了。
Nandflash芯片的数据是以位的方式保存在存储单元中的,一般来说,一个存储单元中只能存储一个位。这些存储单元以8个或者16个为单位,连接成位行,这些位行会再组成页,这些页面会再组成块。Nandflash芯片有多种结构,其中K9F1208芯片是这样的:每页528B,其中512B用于存放数据,还有16B存放这个页面的数据的校验信息,每32个页面形成一个块,块大小为32×528B。具体一片Flash上有多少个块是根据需要决定的。K9F1208的Nandflash芯片具有4096个块,故总容量为4096×(32×528B)一共是66MB,但是其中的2MB是用来保存ECC校验码等额外数据的,故实际中可使用的空间为64MB,如图
Nandflash芯片以页为单位读写数据,所以一次读写最少为512B的数据,不能像Norflash芯片一样可以以字为单位读写数据。而Nandflash芯片是以块为单位擦除数据的。按照这样的组织方式可以形成所谓的三类地址:
1)列地址。
2)页地址。
3)块地址。
由于Nandflash芯片的工艺不能保证存储单元在其生命周期中保持性能的可靠,所以在Nandflash芯片的生产及使用过程中会产生坏块。为了检测其可靠性,在应用Nandflash芯片的系统中一般都会采用一定的坏区管理策略,而管理坏区的前提是能比较可靠地进行坏区检测。如果操作时序和电路稳定性不存在问题,Nandflash芯片出错的时候一般不会造成整个块或页面不能读取或全部出错,而是整个页面(如512B)中只有一位或几位出错。对数据的校验常用的有奇偶校验、CRC校验等,而在Nandflash芯片处理中,一般使用一种比较专业的ECC校验。ECC能纠正单比特错误和检测双比特错误,而且计算速度很快
摘自《深度探索嵌入式操作系统:从零开始设计、架构和开发 (Linux/Unix技术丛书)》
mini2440开发板一些硬件介绍(PTC、定时器、串口、中断控制器、SDROAM、Norflash、Nandflash)相关推荐
- 玩转mini2440开发板之【tekkamanninja版的u-boot的编译和烧录】
今天继续玩一玩mini2440开发板,弄清楚U-boot的编译和烧录过程. 首先,这里交代一个前提,此处所使用的u-boot,是已经移植测试过的,完全可用的版本.就本文而言,我使用的是tekkaman ...
- 玩转mini2440开发板之【使用nfs无法启动的问题(Virtualbox桥接网络)】
今天晚上研究了一下如何通过super-vivi来使用nfs网络文件系统来启动mini2440开发板,一开始一直无法成功,折腾了半天总算搞定了,总结一下: 1.首先,介绍一下我的开发环境. 物理机:wi ...
- iTOP-4418嵌入式开发板接口基本介绍
iTOP-4418嵌入式开发板是迅为电子设计研发的一款四核Cortex-A9开发板,可广泛适用于工控.智能家居.医疗.多媒体.安防.车载.金融.消费电子.手持设备.显示控制.教学.电力.通讯等领域. ...
- linux内核添加usb键盘驱动,配置USB外设 - linux-2.6.32在mini2440开发板上移植_Linux编程_Linux公社-Linux系统门户网站...
linux-2.6.32在mini2440开发板上移植 配置USB外设 [日期:2013-04-08] 来源:Linux社区 作者:ssdsafsdsd [字体:大 中 小] 编者:因为LINUX内核 ...
- 可编程 USB 转串口适配器开发板 S2S 功能介绍
可编程 USB 转串口适配器开发板 S2S 功能介绍 USB2S 支持基于 STC 单片机的二次开发,若有需要,可参照原理图和单片机型号手册自行开发具有特殊功能的固件程序. 1.自带固件S2S 功能介 ...
- 基于Wio RP2040迷你无线WiFi开发板的硬件接口技术及MicroPython控制编程基础
Wio RP2040迷你无线WiFi开发板(Wio RP2040 mini Dev Board)是Seeed Studio公司于2021年5月推出的一款迷你无线WiFi开发板,它集成了Wio RP20 ...
- 【ARM】使用J-Link下载u-boot到Mini2440开发板
文章目录 附录 #1各种引导系统介绍 ##1.1 bios 1 BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本 ...
- 玩转mini2440开发板之【下载编译安装运行QT lib/QT Creator/QT程序全过程】
玩了这么久的mini2440开发板,今天终于完整的将QT研究了一遍,从下载QT库的源码包.配置.编译.安装,然后再到QT Creator的下载.安装和配置,进而新建一个工程,并成功编译,下载到开发板中 ...
- 玩转mini2440开发板之【64位Ubuntu系统无法运行arm-linux-gcc】
前段时间由于工作原因,将虚拟机重装了,由原来的Ubuntu 12.04(32位)升级成了Ubuntu 16.04(64位).自然,原来安装在Ubuntu 12.04中的所有mini2440开发板相关的 ...
最新文章
- 一劳永逸解决PPT中声音视频的路径问题(转)
- 匿名内部类 可以访问外部类_Java——内部类详解
- Selenium +Java自动化环境安装
- 在 Linux 的应用中测试中的延时和丢包模拟
- 推荐一些优质原创公众号
- linux脚本vrrp_script,keepalived之vrrp_script详解
- ORA-30377 MV_CAPABILITIES_TABLE not found
- 柱坐标系下的流体力学控制方程组的微分形式的推导
- 数据库容灾技术之--数据容灾技术比较
- 硬盘分区的类型:mbr分区和gpt分区的区别
- hub设备_【小O新品】办公设备的小助手,ORICO奥睿科HUB集线器新品来袭
- web网页设计期末课程大作业——电影介绍5页HTML+CSS制作
- 安装ubunut双系统,如何删除其中一个
- yolov3损失函数分析
- 惊喜! UE4 + ftrack开源了!
- mysql基于Python的影院会员管理系统的设计与实现毕业设计源码131621
- 软件工程师 级别 职称 评定 从见习程序员 到 主任软件工程师
- 小程序下单账号与支付账号不一致不让支付_微信小程序支付流程
- CAS实现的单点登录系统
- SPI在linux3.14.78 FS_S5PC100(Cortex A8)和S3C2440上驱动移植(deep dive)
热门文章
- backlog配置_详解socket中的backlog 参数
- Adobe Dreamweaver CS5序列号,Adobe Photoshop cs5
- T35 Chrome跳过缓存刷新
- 西安三本哪个计算机学校最好,西安三本大学前十名 西北大学现代学院仅第四...
- TCGA系列--TCGA长链非编码RNA的可视化工具TANRIC
- 【免费wifi上网软件】80后创业者的自白信——我和好基友走上创业这条不归路
- go(基础09)——defer
- 基于正交拉普拉斯脸的人脸识别算法研究
- ETL - ETL工具介绍
- C#基础之数组排序,对象大小比较