Lời cảm ơn
Phần mở đầu
Chương 1: Tổng quan về bộ vi xử lý ARM
1. Giới thiệu về bộ vi xử lý ARM.
1.1. Tổng quan về vi xử lý arm
Trong khoảng 5 năm trở lại đây, cái tên ARM được nhắc đến rất nhiều đi cùng theo
sự phát triển của smartphone, tablet. Nếu như trên mảng PC chúng ta có Intel, AMD thì trên
mảng di động, ARM cũng "nổi tiếng" với mức độ tương đương bởi vì kiến trúc vi xử lí của
họ được sử dụng trong hầu hết các thiết bị di động đang có mặt trên thị trường.Bài viết này
sẽ cung cấp cho bạn một cái nhìn chi tiết về vị trí của ARM hiện tại cũng như con đường
trong tương lai gần của hãng
Tên đây đủ của hãng là ARM Holdings và đóng trụ sở chính tại Anh Quốc. Ban đầu,
chữ ARM viết tắt cho cụm từ Acom RISC Machine, trong đó RISC là một cách thiết kế vi
xử lí (sẽ nói kĩ hơn ở bên dưới), nhưng sau đó chữ Acorn đã được thay bằng chữ Advanced.
Kiến trúc ARM được phát triển lần đầu tiên vào thập niên 1980 để dùng cho máy tính để
bàn. Tính đến thời điểm hiện tại (2013), ARM là kiến trúc tập lệnh chỉ dẫn 32-bit được phổ
biến nhất thế giới, vượt qua cả kiến trúc x86 của Intel, tính theo số lượng chip được sản
xuất. Theo ARM Holdings, chỉ tính riêng năm 2010, kiến trúc của họ đã có mặt trên 95% số
smartphone, 35% số TV và set-top box, 10% số máy tính di động được bán ra.
Kiến trúc ARM được tạo ra dựa trên thiết kế RISC (Reduced instruction set
computing, tạm dịch là "tập chỉ dẫn điện toán được giản lược"). Thiết kế này giúp giảm
đáng kể số lượng bóng bán dẫn cần thiết để vận hành một chiếc máy tính so với kiểu CISC
(complex instruction set computer, tạm dịch là "tập chỉ dẫn máy tính phức tạp"), vốn được
sử dụng phổ biến trong kiến trúc x86 của Intel cũng như các CPU AMD dành cho máy tính.
Lợi ích của việc sử dụng RISC đó là các con chip được sản xuất với chi phí thấp hơn, lượng
nhiệt tỏa ra khi hoạt động thấp hơn, mức độ tiêu thụ điện thấp hơn. Chính vì thế, những bộ
xử lí ARM thường được dùng trong các thiết bị di động đòi hỏi thời lượng pin lâu và kiểu
dáng nhỏ, nhẹ, điển hình là smartphone và tablet ngày nay.
Theo trang tin công nghệ của Anh ITProPortal, hãng ARM (Apple là một trong
những nhà đồng sáng lập), phát triển nhanh chóng là do hoạt động theo một mô hình doanh
nghiệp khác hẳn so với đối thủ chính của mình là Intel. Không chỉ thiết kế, sản xuất và bán
cách đáng kể nhờ việc sử dụng những thiết kế sẵn có (các thiết kế sẵn có này khá ổn
định, và được gọi là Hard Macro). Các đối tác có giấy phép nền tảng ARM có thể
toàn quyền sáng tạo sản phẩm của mình. Apple, Nvidia, Cavium, Marvell, TI,
Qualcomm, AppliedMicro, Microsoft và Intel đều có trong tay giấy phép quan trọng
và đắt giá đó.
Hãng ARM cũng thiết kế một bộ phận quan trọng thuộc hệ thống SoC, đó là bộ xử lí
đồ họa GPU Mali, sử dụng công nghệ đồ họa mua lại từ nhà sản xuất chip đến từ Na
Uy - Falanx vào tháng 6 năm 2006. Điều này có nghĩa là một công ty đối tác có thể
sử dụng bộ xử lí đồ họa và bộ vi xử lí từ hãng ARM và các thành phần từ các nhà sản
xuất khác để lắp ghép lại thành hệ thống SoC. Công ty đối tác đó có thể lựa chọn
hoặc là cải tiến công nghệ (điều này sẽ làm tăng thời gian sản xuất và yêu cầu đầu tư
nghiên cứu, phát triển) hoặc giữ nguyên phiên bản hiện có để bán ra thị trường càng
nhiều càng tốt.
ARM hiện có trong tay khoảng 900 giấy phép bản quyền với gần 300 trong số đó liên
quan đến bộ vi xử lí Cortex nền ARM thế hệ mới nhất. Theo thống kê thì hai tỉ chip
nền ARM đã được bán ra trong quý 2/2012, đem về cho hãng ARM trung bình
khoảng 0,03 bảng mỗi chip.
Theo một bản báo cáo công bố bởi công ty nghiên cứu thị trường Strategy Analytics
vào tháng Tám vừa qua, thì Qualcomm với hệ thống SoC đã đạt mức doanh thu gần
1,1 tỉ USD, tương đương 44% toàn bộ thị trường, và trở thành nhà sản xuất chip nền
ARM lớn nhất hiện nay. Xếp sau Qualcomm là Samsung, hãng Texas Instruments,
Broadcon, Mediatek và Marvell.
Apple cũng là một trong số các nhà sản xuất chip nền ARM. Tuy nhiên, Apple không
bán ra bất kì SoC nào mà tất cả các thiết kế của hãng (bao gồm các mẫu phổ biến trên
thị trường như chip A4, A5, A6) đều được dùng độc quyền cho các thiết bị của mình
bao gồm iPad, iPhone, iPod Touch và TV Apple.
2
Novathor
Nvidia
Tegra
Hầu hết các sản phẩm máy tính bảng và
smartphone Galaxy của Samsung.
iPhone, iPad
Sony Xperia U và Sony Xperia Sola
Hầu hết máy tính bảng Android, Microsoft
Surface, dòng HTC One X và dòng LG
Optimus 4x
Máy tính bảng Archos, một số loại
smartphone Huawei, điện thoại Motorola
đời cũ
TI
OMAP
Broadcom
Dòng BCM
AllWinner
Dòng A
KV3
Smartphone Huawei Ascend P1D và máy
tính bảng Media Pad
Freescale
i.MX
Nhiều máy tính bảng của Trung Quốc
Matsubishi/Panasonic
Uniphier
Các thiết bị nghe nhìn của Panasonic
Hình 1.2. Kiến trúc của ARM
Với phần lớn người lập trình nhúng, thường hay có thói quen sử dụng một dòng vi xử
lý thông dụng ví dụ như 8051, AVR, PIC... Mỗi khi muốn nâng cấp hay nghiên cứu một sản
phẩm mới, ngoài việc phải coi lại kiến trúc phần cứng, điều quan trọng là làm thế nào để
chạy những chương trình ứng dụng đang hoạt động tốt ở vi xử lý cũ. Nắm bắt được hạn chế
này, các nhà sản xuất phần cứng đã cùng hợp tác và cho ra đời dòng vi xử lý ARM với
những chuẩn phần cứng đáp ứng khả năng tương thích với phần mềm. Phần lõi ARM được
cấp phép sở hữu trí tuệ (Intellectual Property), và tuân theo chuẩn phần cứng ARM, các
phần ngoại vi thì tùy thuộc vào nhà sản xuất sẽ có những quy định riêng về hệ thống thanh
ghi và tập lệnh bổ sung.
4
ngoại vi S3C6410X phần cứng như một giao diện máy ảnh , màn hình TFT màu sắc trung
thực 24-bit điều khiển màn hình LCD, hệ thống quản lý ( quản lý điện ...), 4 kênh UART ,
32 kênh DMA , 5 kênh Thời Gian 32bit với sản lượng 2PWM , GPIO , I2S -Bus giao diện ,
giao diện I2C -BUS , USB Host , USB OTG thiết bị hoạt động ở tốc độ cao ( 480Mbps ) , 3
kênh SD / MMC Host Controller và PLLs cho thế hệ đồng hồ .
Các hệ thống phụ ARM dựa trên lõi ARM1176JZF - S . Nó bao gồm 16KB bộ nhớ
riêng và 16KB data cache , 16KB bộ nhớ và 16KB data TCM . Nó cũng bao gồm một
MMU đầy đủ để xử lý quản lý bộ nhớ ảo .
Các ARM1176JZF - S là một chip MCU duy nhất, bao gồm hỗ trợ cho JAVA. Các
ARM1176JZF – S bao gồm một vector Coprocessor điểm nổi chuyên dụng cho phép thực
hiện hiệu quả của mã hóa khác nhau chương trình cũng như chất lượng các ứng dụng đồ họa
3D cao . Các S3C6410X thông qua các AMBA de - facto kiến trúc bus tiêu chuẩn, các tính
năng tiêu chuẩn công nghiệp mạnh mẽ cho phép các S3C6410X để hỗ trợ rất nhiều các
ngành công nghiệp hệ điều hành tiêu chuẩn.
Cung cấp hai loại sản phẩm POP mà là dựa trên S3C6410X .
PoP 6410X LOẠI Alà một POP (gói trên gói ) sản phẩm xếp chồng lên nhau với S3C6410X
và bộ nhớ MCP (2G OneNAND + 512Mb Moblie DDR x 2ea )
Các 6410X PoP Loại D là một POP (gói trên gói ) sản phẩm xếp chồng lên nhau với
S3C6410X và bộ nhớ MCP ( 2Gb NAND + 512Mb OneDRAM + 512MB Mobile DDR )
1.2.2. Tính năng
6
Hình 1.4. Sơ đồ khối S3C6410
Các tính năng của S3C6410X RISC bao gồm:
• ARM1176JZF - S dựa trên hệ thống con với dụng cụ tăng tốc Java và 16KB/16KB I/D
cache CPU và 16KB/16KB I/D TCM .
• Tốc độ xử lý 533MHz tại 1.1V và 667MHz tại 1,2 V tương ứng .
• Giao diện máy ảnh 8-bit ITU 601/656 lên đến 4 triệu điểm ảnh cho điểm ảnh thu nhỏ và
Bộ vi xử lý ARM1176JZF - S kết hợp một đơn vị số nguyên mà thực hiện trên các
kiến trúc ARM ARM11 V6. Nó hỗ trợ ARM , Thumb ™ và công nghệ Jazelle để cho phép
thực hiện trực tiếp của bytecode Java , và một loạt các SIMD DSP hướng dẫn hoạt động trên
16-bit hoặc giá trị dữ liệu 8-bit trong thanh ghi 32-bit .
Các tính năng của bộ xử lý ARM1176JZF - S bao gồm:
• Tốc độ vi xử lý Kiến trúc Bus nâng cao (AMBA) nâng cao mở rộng giao diện ( AXI ) mức
hai giao diện hỗ trợ triển khai đa ưu tiên .
• Đơn vị Integer với bộ EmbeddedICE -RT logic.
• Pipeline tám giai đoạn .
• Cấu hình độ trễ gián đoạn thấp.
• Bộ đồng xử lý CP14 và CP15 .
• Đơn vị quản lý bộ nhớ dữ liệu ( MMUs ) , quản lý sử dụng cấu trúc MicroTLB được hỗ
trợ bởi một thống nhất main TLB.
• Cache dữ liệu và chỉ thị, bao gồm một bộ nhớ cache dữ liệu non-blocking với Hit-UnderMiss (HUM)
• Giao diện chỉ mục và lưu trữ cache địa chỉ vật lý.
• 64-bit cho cả hai Cache .
• Vector Floating-Point ( VFP ) hỗ trợ bộ đồng xử lý.
2. KIT vi xử lý Friendly ARM Tiny 6410.
2.1. Giới thiệu chung
Board S3C6310 là một board máy tính nhúng lõi đơn nhỏ gọn dựa trên nền tảng
Samsung ARM11 S3C6410. Thiết kế đặc biệt cho các thiết bị Internet di động, Notebook,..
Các tính năng cung cấp phổ biến cho các thế hệ Pocket PC và smart phone mới nhất.
Board S3C6410 cho phép dễ dàng phát triển ứng dụng nhúng qua các công cụ tương thích
với máy tính đồng thời đảm bảo độ tin cậy, chắc chắn cho hệ thống. Nhiệt độ có thể chịu
được rơi vào khoảng -20oC đến +70oC nếu không có tản nhiệt cho chip.
Các tính năng khác bao gồm 4 cổng UART, SPI, I2C,1 đồng hồ thời gian thực sử
dụng nguồn riêng, bộ nhớ NAND Flash, bộ nhớ DDRam..
Board hỗ trợ hệ điều hành nhúng wince6.0, Linux 2.6, Android và Ubuntu.
8
•
Serial : 4 DB9 RS232 COM0, COM1, COM2, COM3
•
USB : 1 MiniUSB Device USB2.0, 1 USB Host USB1.1
•
Audio : Jack cắm Stereo – 3.5mm, Jack cắm Mic
•
TV : Jack cắm tổng hợp RCA ngõ ra TV
•
IR : Đầu thu hồng ngoại
•
SD :SD Card kích cỡ thông thường, hỗ trợ tới 32 Gbytes
•
SDIO : SDIO header cho SDIO Wifi, ... + SPI và IIC.
•
o
Android 2.0
o
WindowsCE6.0r3 .Net xây dựng sẵn bản Custom/English.
2.3. Phần cứng
9
2.3.1. Sơ đồ khối
Hình 1.5. Sơ đồ khối của board
2.3.2. Thiết kế Nguồn S3C
Nguồn của hệ thống board được cung cấp trực tiếp bởi nguồn 5V/2A.
Ngoài ra các nguồn điện áp khác tạo ra trên board như 3.3V, 1.8V thông qua các
mạch ổn áp từ nguồn cấp 5V.
Vì board Mini2440 không được thiết kế đặc biệt cho các thiết bị cầm tay
nên nó không chứa mạch để quản lí nguồn năng lượng cung cấp. Do đó,
mạch cung cấp được điều khiển thông qua switch S1.
Hình 1.6:
Nơi cấp
nguồn
10
"OM0" là "0", nó chọn "EXTCLK" khi "OM0" là "1" . Các IDEA6410 sử dụng "XTIpll".
"SELNAND" là một tín hiệu của việc lựa chọn loại bộ nhớ, đó là mức cao khi lựa
chọn NAND Flash , đó là mức thấp khi chọn OneNAND . Board S3C6410 sử dụng
NAND Flash .
EINT13 - EINT15 là thiết bị chọn chân của chế độ khởi động IROM, khi thông qua
chế độ khởi động IROM, các S3C6410 chip chính chạy chương trình giải quyết trước sau
đó đọc tình trạng ba chân EINT15 , EINT14 , EINT13 với cấu hình khác nhau để lựa
chọn thiết bị khởi động.
Đó là chế độ khởi động IROM khi người dùng chọn thẻ SD là thiết bị khởi động. Ở
chế độ này , EINT15 , EINT14 , EINT13 là mức thấp. Vì vậy, người dùng sẽ thấy trên
bảng S3C6410 , những tín hiệu EINT15 , EINT14 , EINT13 được trực tiếp kết nối với
mặt đất .
DBGSEL là JTAG giao diện cuộc gọi chọn tín hiệu.
Trên board S3C6410, ba chân EINT13 - 15 đã được đặt vào mức độ thấp , hãy chọn
chế độ khởi động bằng cách cấu hình OM1 - OM4 và SELNAND.
Ports
OM1 OM2 OM3 OM4
SW1’s Position 1
2
3
4
Nor Flash boot- 1
0
1
0
Nand Flash
1
1
0
0
Hình 1.11: SW1
OM0 là nguồn lựa chọn tín hiệu đồng hồ chip S3C6410. Nó chọn XTIpll khi OM0
là "0", nó lựa chọn EXTCLK khi OM0 là "1". Các IDEA6410 sử dụng XTIpll.
2.3.4. Mô tả thiết kế phần cứng và giao diện S3C6410
Nand Flash
Board S3C6410 lựa chonchọn SLC NAND Flash K9F2G08 từ Samsung, kích
thước của nó là Bytes 256M, chủ yếu để lưu trữ nhân, ứng dụng, hệ thống tập tin và dữ
liệu người dùng.
Ngoài ra, phần sơ đồ chân và chức năng tương thích với các thiết bị Nand Flash
được liệt kê ở trên cũng có thể được sử dụng với Board S3C6410.
Các thiết bị NAND Flash thường có tuổi thọ ít nhất 100.000 xóa/chu kỳ chương trình và
tỷ lệ lưu giữ dữ liệu của 10 năm.
NAND Flash là một thiết bị khởi động, khi khởi động, các chip chính S3C6410 tự
động sao chép 8K trong Nand Flash vào bộ nhớ đệm của chip để chạy. Sau khi cấu hình
khởi tạo, các chip nhảy tới địa chỉ bắt đầu của nhân để chạy các hệ điều hành. Hình ảnh
dưới đây cho thấy bản vẽ sơ đồ mạch của Nand Flash:
Hình 1.12: Sơ đồ mạch của Nand Flash.
DDR RAM
Board nhận 2 thanh DDR RAM Mobile Samsung K$X%!!63PC 64M Bytes với
tốc độ 266MHz. Đó là gói nhỏ để tiết kiệm diwwnj tích trên board, và cũng sử dụng
đường dây mạch trên khắp chiều dài machjPCB để đảm bảo việc board chạy ổn định và
đạt tốc độ cao.
NOR Flash
Board S3C6410 nhận Nor Flash ARM AM29LV160DB, chip S3C6410 hỗ trợ tối
đa 27 địa chỉ tín hiệu địa chỉ từ AA0-A26, trong đó A20-A26 được tái sử dụng với các tín
hiệu dữ liệu DDR D20-D26. Như Board S3C6410 gồm DDR RAM do đó chỉ có 19 dòng
A1-A19 cho NOR Flash để sử dụng. Nor Flash có phạm vi là 1MB. NOR Flash có thể
Hình 1.17: Bản vẽ mạch của USB Host
USB OTG
Bộ điều khiển hỗ trợ tính năng On-The-Go (OTG). Universal Serial Bus OTG là
một thiết bị có khả năng bắt đầu phiên giao dịch, kiểm soát việc kết nối và trao đổi
Host/ngoại vi xen kẽ vai trò với nhau.
USB OTG hỗ trợ giao thức USB 2.0, nó hỗ trợ tốc độ cao(480Mbps), tốc độ Trung bình
(12Mbps), tốc độ thấp (1.5Mbps). Board S3C6410 mặc định chạy ở tốc độ cao và chế độ
slave thuận tiện cho việc kết nối với máy tính. Nó có thể sử dụng USB OTG để tải
chương trình hoặc ứng dụng khi người sử dụng đang phát triển ứng dụng. USB OTG loại
cổng là Mini A/B, hình ảnh dưới đây là bản vẽ mạch của nó.
Hình 1.18: Hình vẽ mạch của USB Slave
JTAG
Board S3C6410 được trang bị với một giao diện JTAG để tải về mã chương trình
vào flash bên ngoài, bên trong bộ điều khiển bộ nhớ RAM hoặc cho các chương trình
hiện đang thực hiện gỡ lỗi. Giao diện JTAG mở rộng ra 5*2
2.0mm đầu cắm J2. Thông qua cấu hình tín hiệu DBGSEL người sử dụng có thể chọn
hoạt động Flash ngoài hay bộ điều khiển bộ nhớ RAM nội bộ, dưới đây là cấu hình chi
tiết của tín hiệu DBGSEL.
- Khi DBGSEL được thiết lập ở mức cao, JTAG kết nối bộ điều khiển bộ nhớ
RAM nội bộ và có thể gọi vào địa chỉ của SRAM điều khiển nội bộ.
- Khi DBGSEL được thiết lập là cấp thấp, JTAG kết nối bộ nhớ flash bên ngoài
cho các chương trình gỡ lỗi.
Hình 1.19: Hình ảnh và bản vẽ mạch của kết nối JTAG
SD Card
Cổng thẻ SD J12 hỗ trợ giao thức bộ nhớ SD 2.0 và SDIO giao thức 1.0. Như SD
Hình 1.22:Hình ảnh của màn hình LCD và kết nối TC
Hình 1.23: Bản vẽ mạch của màn hình LCD và kết nối TC
2.3.8. Phím reset
Board S3C6410 gồm chip reset MAX811T. Dưới đây là hình ảnh vẽ mạch Reset.
Hình 1.24: Hình ảnh và bản vẽ mạch của nút Reset
2.3.9. Giao diện âm thanh
Board S3C6410 thông qua bộ điều khiển nội bộ Bus AC97 để kết nối chip âm
thanh bên ngoài WM9714. Board có kết nối đường ra (J16), Line trong (J17) và MIC
trong (J15).
Dưới đây là hình ảnh về giao diện âm thanh.
Hình 1.25. Hình ảnh và bản vẽ mạch của các jack cắm âm thanh
2.3.10. Buzzer
Board S3C6410 có DC Buzzer. Nó sẽ sử dụng NPN DYNATRON SS8050 để
khuếch đại âm thanh cho buzzer. Buzzer được điều khiển bởi tín hiệu PWM1_GDF15.
Dưới đây là mạch vẽ về Buzzer:
Hình 1.26: Hình ảnh và bản vẽ của mạch Buzzer
2.3.11. Giao diện Ethernet 100M
Giao diện Ethernet được bổ sung vào Board của Ethernet Transformer và kết nối
RJ45. Bộ điều khiển Ethernet là chip DM900AE bên ngoài, chip gọi tới tín hiệu ngắt
ngoài CPU EINT7.
Về quá trình phát triển, giao diện có thể kết nối với máy tính thông qua đường dây