什么是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)相关推荐

  1. 玩转mini2440开发板之【tekkamanninja版的u-boot的编译和烧录】

    今天继续玩一玩mini2440开发板,弄清楚U-boot的编译和烧录过程. 首先,这里交代一个前提,此处所使用的u-boot,是已经移植测试过的,完全可用的版本.就本文而言,我使用的是tekkaman ...

  2. 玩转mini2440开发板之【使用nfs无法启动的问题(Virtualbox桥接网络)】

    今天晚上研究了一下如何通过super-vivi来使用nfs网络文件系统来启动mini2440开发板,一开始一直无法成功,折腾了半天总算搞定了,总结一下: 1.首先,介绍一下我的开发环境. 物理机:wi ...

  3. iTOP-4418嵌入式开发板接口基本介绍

    iTOP-4418嵌入式开发板是迅为电子设计研发的一款四核Cortex-A9开发板,可广泛适用于工控.智能家居.医疗.多媒体.安防.车载.金融.消费电子.手持设备.显示控制.教学.电力.通讯等领域. ...

  4. linux内核添加usb键盘驱动,配置USB外设 - linux-2.6.32在mini2440开发板上移植_Linux编程_Linux公社-Linux系统门户网站...

    linux-2.6.32在mini2440开发板上移植 配置USB外设 [日期:2013-04-08] 来源:Linux社区 作者:ssdsafsdsd [字体:大 中 小] 编者:因为LINUX内核 ...

  5. 可编程 USB 转串口适配器开发板 S2S 功能介绍

    可编程 USB 转串口适配器开发板 S2S 功能介绍 USB2S 支持基于 STC 单片机的二次开发,若有需要,可参照原理图和单片机型号手册自行开发具有特殊功能的固件程序. 1.自带固件S2S 功能介 ...

  6. 基于Wio RP2040迷你无线WiFi开发板的硬件接口技术及MicroPython控制编程基础

    Wio RP2040迷你无线WiFi开发板(Wio RP2040 mini Dev Board)是Seeed Studio公司于2021年5月推出的一款迷你无线WiFi开发板,它集成了Wio RP20 ...

  7. 【ARM】使用J-Link下载u-boot到Mini2440开发板

    文章目录 附录 #1各种引导系统介绍 ##1.1 bios 1 BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本 ...

  8. 玩转mini2440开发板之【下载编译安装运行QT lib/QT Creator/QT程序全过程】

    玩了这么久的mini2440开发板,今天终于完整的将QT研究了一遍,从下载QT库的源码包.配置.编译.安装,然后再到QT Creator的下载.安装和配置,进而新建一个工程,并成功编译,下载到开发板中 ...

  9. 玩转mini2440开发板之【64位Ubuntu系统无法运行arm-linux-gcc】

    前段时间由于工作原因,将虚拟机重装了,由原来的Ubuntu 12.04(32位)升级成了Ubuntu 16.04(64位).自然,原来安装在Ubuntu 12.04中的所有mini2440开发板相关的 ...

最新文章

  1. 一劳永逸解决PPT中声音视频的路径问题(转)
  2. 匿名内部类 可以访问外部类_Java——内部类详解
  3. Selenium +Java自动化环境安装
  4. 在 Linux 的应用中测试中的延时和丢包模拟
  5. 推荐一些优质原创公众号
  6. linux脚本vrrp_script,keepalived之vrrp_script详解
  7. ORA-30377 MV_CAPABILITIES_TABLE not found
  8. 柱坐标系下的流体力学控制方程组的微分形式的推导
  9. 数据库容灾技术之--数据容灾技术比较
  10. 硬盘分区的类型:mbr分区和gpt分区的区别
  11. hub设备_【小O新品】办公设备的小助手,ORICO奥睿科HUB集线器新品来袭
  12. web网页设计期末课程大作业——电影介绍5页HTML+CSS制作
  13. 安装ubunut双系统,如何删除其中一个
  14. yolov3损失函数分析
  15. 惊喜! UE4 + ftrack开源了!
  16. mysql基于Python的影院会员管理系统的设计与实现毕业设计源码131621
  17. 软件工程师 级别 职称 评定 从见习程序员 到 主任软件工程师
  18. 小程序下单账号与支付账号不一致不让支付_微信小程序支付流程
  19. CAS实现的单点登录系统
  20. SPI在linux3.14.78 FS_S5PC100(Cortex A8)和S3C2440上驱动移植(deep dive)

热门文章

  1. backlog配置_详解socket中的backlog 参数
  2. Adobe Dreamweaver CS5序列号,Adobe Photoshop cs5
  3. T35 Chrome跳过缓存刷新
  4. 西安三本哪个计算机学校最好,西安三本大学前十名 西北大学现代学院仅第四...
  5. TCGA系列--TCGA长链非编码RNA的可视化工具TANRIC
  6. 【免费wifi上网软件】80后创业者的自白信——我和好基友走上创业这条不归路
  7. go(基础09)——defer
  8. 基于正交拉普拉斯脸的人脸识别算法研究
  9. ETL - ETL工具介绍
  10. C#基础之数组排序,对象大小比较