Ứng dụng cho các hệ thống nhúng hiện nay ngày càng trở nên phức tạp, không phải đơn giản chỉ là điều khiển một chốt đèn giao thông định thời, đếm số người ra vào cửa, điều khiển động cơ, hiển thị một câu thông báo trên LCD. Xu thế tất yếu, các nhân điều khiển cần có cấu hình mạnh hơn, đáp ứng thời gian thực tốt hơn các nhân điều khiển 8 bit đang dùng.
Ngày nay với sự phát triển của khoa học và kỹ thuật, các ứng dụng mang tính hệ thống lớn được thế kế sử dụng các vi xử lý 16/32 bit. Trong đó phổ biến nhất là ARM, chiếm hơn 75% chip 32 bit trên thị trường. ARM là một họ vi xử lý RISC 16/32 bit của ARM Ltd. Đặc tính nổi trội của ARM là tiết kiệm năng lượng, do đó được sử dụng trong nhiều thiết bị cầm tay, là CPU được tìm thấy khắp nơi trong các sản phẩm thương mại điện tử (PDA, Mobile ) đến các thiết bị ngoại vi máy tính (ổ đĩa cứng, bộ định tuyến để bàn ). Do đó việc tìm hiểu và nghiên cứu về vi điều khiển ARM là điều hết sức cần thiết. Sau quá trình tìm hiểu và thực hiện đề tài đã giúp em hiểu được kiến trúc, tập lệnh cũng như thiết kế ứng dụng trên lõi vi xử lý ARM. Dựa trên kiến thức tìm hiểu được, thực hiện viết code trên Kit với mục đích xử lý file âm thanh và hình ảnh từ đĩa cứng.
153 trang |
Chia sẻ: ngtr9097 | Lượt xem: 2677 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đồ án Xử lý file âm thanh và hình ảnh từ đĩa cứng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
--------- @&? ----------
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XỬ LÝ FILE ÂM THANH
VÀ HÌNH ẢNH TỪ ĐĨA CỨNG
GVHD : ThS. NGÔ ĐỨC HOÀNG
SVTH : NGUYỄN BÁ ĐẠT
MSSV : 40500576
SVTH : PHẠM NAM HƯNG
MSSV : 40501183
TPHCM, Tháng 01/2010
LỜI CẢM ƠN
Chúng em xin gửi đến ThS. Ngô Đức Hoàng lời cảm ơn chân thành với sự trân trọng và lòng biết ơn sâu sắc về sự hướng dẫn đầy chu đáo và nhiệt tình. Thầy đã dẫn dắt, tạo cho chúng em cách tư duy và làm việc một cách khoa học trong suốt thời gian thực hiện đề tài luận văn này.
Chúng em xin chân thành cảm ơn các thầy cô trong khoa Điện – Điện tử, đặc biệt là các thầy cô trong bộ môn Điện tử đã hết lòng dạy dỗ và truyền đạt cho chúng em những kiến thức quý báu trong suốt các năm học tại trường, nhờ đó chúng em đã trang bị một nền tảng kiến thức vững chắc.
Chúng em xin gửi lời cảm ơn đến các anh trong nhóm ứng dụng của trung tâm nghiên cứu và đào tạo thiết kế vi mạch (ICDREC), Đại Học Quốc Gia Tp.HCM, đặc biệt gửi lời cảm ơn đến các anh trong nhóm nghiên cứu ARM đã tạo điều kiện thuận lợi và giúp đỡ chúng em tận tình. Cảm ơn anh Phan Phụng Cử, anh Phạm Thanh Tuyên đã giúp đỡ chúng em rất nhiều.
Chúng con xin gửi đến cha mẹ lòng kính trọng và biết ơn sâu sắc nhất. Cha mẹ đã nuôi dưỡng, dạy dỗ chúng con nên người và là chỗ dựa tinh thần vững chắc cho chúng con trong cuộc đời.
Chúng tôi xin cảm ơn các bạn đã cùng học tập, giúp đỡ, động viên và cùng chúng tôi bước qua quãng đời sinh viên này.
Tp.Hồ Chí Minh, Tháng 01 năm 2010.
Sinh viên
Nguyễn Bá Đạt
Phạm Nam Hưng
TÓM TẮT LUẬN VĂN
Ứng dụng cho các hệ thống nhúng hiện nay ngày càng trở nên phức tạp, không phải đơn giản chỉ là điều khiển một chốt đèn giao thông định thời, đếm số người ra vào cửa, điều khiển động cơ, hiển thị một câu thông báo trên LCD... Xu thế tất yếu, các nhân điều khiển cần có cấu hình mạnh hơn, đáp ứng thời gian thực tốt hơn các nhân điều khiển 8 bit đang dùng.
Ngày nay với sự phát triển của khoa học và kỹ thuật, các ứng dụng mang tính hệ thống lớn được thế kế sử dụng các vi xử lý 16/32 bit. Trong đó phổ biến nhất là ARM, chiếm hơn 75% chip 32 bit trên thị trường. ARM là một họ vi xử lý RISC 16/32 bit của ARM Ltd. Đặc tính nổi trội của ARM là tiết kiệm năng lượng, do đó được sử dụng trong nhiều thiết bị cầm tay, là CPU được tìm thấy khắp nơi trong các sản phẩm thương mại điện tử (PDA, Mobile…) đến các thiết bị ngoại vi máy tính (ổ đĩa cứng, bộ định tuyến để bàn…). Do đó việc tìm hiểu và nghiên cứu về vi điều khiển ARM là điều hết sức cần thiết. Sau quá trình tìm hiểu và thực hiện đề tài đã giúp em hiểu được kiến trúc, tập lệnh cũng như thiết kế ứng dụng trên lõi vi xử lý ARM. Dựa trên kiến thức tìm hiểu được, thực hiện viết code trên Kit với mục đích xử lý file âm thanh và hình ảnh từ đĩa cứng.
Nội dung đề tài:
Chương 1: ARM7LH79525.
Chương 2: Cấu trúc dữ liệu ổ đĩa cứng và giao tiếp IDE.
Chương 3: Chuẩn FAT32.
Chương 4: LCD TFT&TSC.
Chương 5: MP3 Audio Decoder VS1011e.
Chương 6: Kết luận và hướng phát triển.
Trong quá trình thực hiện luận văn, dù đã cố gắng, nỗ lực song khó tránh khỏi các thiếu sót, mong các thầy cô và các bạn thông cảm và góp ý.
Tp. Hồ Chí Minh, Tháng 01 năm 2010
Sinh Viên
Nguyễn Bá Đạt
Phạm Nam Hưng
MỤC LỤC
Đề mục Trang
Bìa i
Phiếu Chấm Bảo Vệ LVTN (giáo viên hướng dẫn)
Phiếu Chấm Bảo Vệ LVTN (giáo viên phản biện)
Nhiệm Vụ Luận Văn Tốt Nghiệp
Lời Cảm Ơn ii
Tóm Tắt Luận Văn iii
Mục Lục iv
Danh Mục Hình Vẽ ix
Danh Mục Bảng Biểu xi
Danh Sách Các Từ Viết Tắt xiii
Tài Liệu Tham Khảo 139
DANH MỤC HÌNH VẼ
Hình 1.1 Sơ đồ ứng dụng của LH79525
Hình 1.2 Sơ đồ khối LH79525
Hình 1.3 Sơ đồ khối của Boot Controller
Hình 1.4 Sơ đồ khối EMC
Hình 1.5 Chuyển địa chỉ tự động
Hình 1.6 SSP Timing Waveform Parameters
Hình 1.7 Khung định dạng Motorola SPI (truyền liên tục)
Hình 1.8 Khung định dạng Motorola SPI với SPH = 0
Hình 1.9 Khung định dạng đồng bộ nối tiếp Texas Instruments (truyền liên tục)
Hình 1.10 Khung định dạng Microwire (truyền đơn)
Hình 1.11 Khung định dạng Microwire (truyền liên tục)
Hình 2.1 Cấu tạo bên trong một ổ đĩa cứng
Hình 2.2 Cấu trúc track, cluster, sector
Hình 2.3 Cấu trúc Cylinder
Hình 2.4 Cáp dữ liệu IDE (PATA)
Hình 2.5 Cáp nguồn IDE (PATA)
Hình 2.6 Vị trí các chân data của cáp IDE
Hình 4.1 Sơ đồ khối của LCD
Hình4.2 Sơ đồ chân LCD (chế độ 16 bit)
Hình 4.3 Kết nối giao diện hệ thống với giao diện RGB
Hình 4.4 Định dạng dữ liệu giao diện hệ thống 16 bit
Hình 4.5 Định dạng dữ liệu của giao tiếp SPI
Hình 4.6 Truyền dữ liệu qua giao tiếp VSYNC
Hình 4.7 Truyền dữ liệu ảnh động qua giao tiếp VSYNC
Hình 4.8 Sự hoạt động qua giao tiếp VSYNC
Hình 4.9 Định dạng dữ liệu của giao tiếp RGB 16 bit
Hình 4.10 Vùng truy cập GRAM bằng giao tiếp RGB
Hình 4.11 Định dạng dữ liệu giao tiếp RGB 16 bit
Hình 4.12 Thiết lập thanh ghi với giao tiếp SPI
Hình 4.13 Thiết lập thanh ghi với giao tiếp hệ thống i80 16 bit dữ liệu
Hình 4.14 Điều chỉnh hướng truy cập GRAM
Hình 4.15 Cấu hình dãy truy cập GRAM
Hình 4.16 Kiến trúc N-bit SAR đơn giản
Hình 4.17 Ví dụ về hoạt động SAR ADC 4 bit
Hình 4.18 Màn hình cảm ứng 4 dây
Hình 4.19 Mạch tương đương màn hình cảm ứng 4 dây
Hình 4.20 Tính toán áp cho mà hình cảm ứng 4 dây
Hình 4.21 4-wire Touch Screen Hookup
Hình 5.1 VS1011e
Hình 5.2 Sơ đồ khối VS1011e
Hình 5.3 Pin Configuration, LQFP-48
Hình 5.4 Pin Configuration, BGA-49
Hình 5.5 Pin Configuration, SOIC-28
Hình 5.6 Sơ đồ kết nối tiêu biểu sử dụng LQFP-48
Hình 5.7 BSYNC Signal - one byte transfer
Hình 5.8 BSYNC Signal - two byte transfer
Hình 5.9 SCI Word Read
Hình 5.10 SCI word write
Hình 5.11 SPI Timing Diagram
Hình 5.12 Data Flow of VS1011e
Hình 5.13 Cấu trúc file mp3
Hình 6.1 Kit ARM thực hiện
DANH MỤC BẢNG BIỂU
Bảng 1.1 Cấu hình Boot cho Silicon phiên bản A.0
Bảng 1.2 Cấu hình Boot cho Silicon phiên bản A.1
Bảng 1.3 Thông số Boot từ I2C
Bảng 1.4 Thiết bị được hỗ trợ Boot từ I2C
Bảng 1.5 Thông số Boot UART0
Bảng 1.6 Tóm lượt thanh ghi điều khiển Boot
Bảng 1.7 Thanh ghi PBC
Bảng 1.8 Thanh ghi CS1OV
Bảng 1.9 Thanh ghi EPM
Bảng 1.10 Cấu hình bộ nhớ tĩnh
Bảng 1.11 Ví dụ về hệ thống bộ nhớ
Bảng 1.12 GPIO Ports
Bảng 1.13 LH79525 GPIO Multiplexing
Bảng 1.14 LH79525 GPIO Multiplexing (tiếp theo)
Bảng 1.15 Bản đồ bộ nhớ của port GPIO
Bảng 1.16 Thanh ghi P1DRx
Bảng 1.17 Trường P1DRx
Bảng 1.18 Thanh ghi P2DRx
Bảng 1.19 Trường P2DRx
Bảng 1.20 Thanh ghi P1DDRx
Bảng 1.21 Trường P1DDRx
Bảng 1.22 Thanh ghi P2DDRx
Bảng 1.23 P2DDRx Register Definitions
Bảng 1.24 Tóm tắt thanh ghi SSP
Bảng 1.25 Thanh ghi CTRL0
Bảng 1.26 Thanh ghi CTRL1
Bảng 1.27 Thanh ghi DR
Bảng 1.28 Thanh ghi SR
Bảng 2.1 Tên các chân data của cáp IDE
Bảng 2.2 Chức năng các chân data của cáp IDE
Bảng 2.3 Nội dung 512 bytes Identify
Bảng 2.4 Nội dung 512 bytes Identify (tiếp theo)
Bảng 2.5 Nội dung 512 bytes Identify (tiếp theo)
Bảng 2.6 Nội dung 512 bytes Identify (tiếp theo)
Bảng 3.1 Cấu trúc của Master Boot Record
Bảng 3.2 Cấu trúc Entry Primary Partition
Bảng 3.3 Cấu trúc ổ đĩa chỉ chứa Primary Partition
Bảng 3.4 Cấu trúc ổ đĩa khi có Secondary Partition
Bảng 3.5 Các thông số mà Partition Boot Record cung cấp
Bảng 3.6 Cấu trúc của Partition Boot Record
Bảng 3.7 Vị trí bảng FAT trên Partion
Bảng 3.8 Kích thước chi tiết entry của short file name
Bảng 3.9 Chức năng của bit Attrib
Bảng 3.10 Kích thước chi tiết entry của long file name
Bảng 3.11 Cấu trúc bảng FAT
Bảng 4.1 Bảng Init LCD
Bảng 4.2 Thanh ghi HW
Bảng 4.3 Thanh ghi LW
Bảng 4.4 Header của file BMP
Bảng 4.5 Thông tin BMP
Bảng 5.1 Chức năng các chân của VS1011e
Bảng 5.2 Chức năng các chân ở chế độ VS1002
Bảng 5.3 Chức năng các chân ở chế độ VS1002
Bảng 5.4 Các thanh ghi SCI
Bảng 5.5 MPEG Audio Frame Header
Bảng 5.6 Các phiên bản MPEG và tỷ lệ lấy mẫu
Bảng 5.7 Bitrates (kilobits/s)
Bảng 5.8 Bitrate được phép và chế độ kết hợp
Bảng 5.9 Mẫu/Frame
DANH SÁCH CÁC TỪ VIẾT TẮT
ARM Acorn RISC Machine/Advanced RISC Machines
ADC Analog to Digital Converter
TSC Touch Screen Controller
PBC Power-up Boot Configuration
CS1OV nCS1 Override
EPM External Peripheral Mapping
EMC External Memory Controller
CS Chip Select
GPIO General purpose input/output
FIFO First In First Out
CTRL0 Control Register 0
CTRL1 Control Register 1
DR Data Register
SR Status Register
CPSR Clock Prescale Register
IMSC Interrupt Mask Set and Clear Register
RIS Raw Interrupt Status Register
MIS Masked Interrupt Status Register
ICR Interrupt Clear Register
DCR DMA Control Register
FAT File Allocation Table
NTFS New Technology File System
CPU Central Processing Unit
MBR Master Boot Record
PBR Partition Boot Record
LBA Logical block addressing
LFN Long file name
SHF Short file name
UTF Unicode Transformation Format
SPI Serial Peripheral Interface
SSP Synchronous Serial Port
CHƯƠNG 1 ARM7 LH79525
1.1 Tổng quan
- ARM 7 là chip tích hợp cao.
- Công suất cao: tốc độ của CPU lên đến 76.205 MHz, AHB clock (HCLK) 50.803 MHz.
- LH79525 có bus dữ liệu ngoài 16 bit.
- 8 KB bộ nhớ Buffer.
- 16 KB SRAM trên chip.
- Linh hoạt, giao tiếp bộ nhớ có thể lập trình.
• Giao tiếp SDRAM
512MB vùng địa chỉ bên ngoài.
32 bit bus dữ liệu bên ngoài (LH79524).
16 bit bus dữ liệu bên ngoài (LH79525).
• Giao tiếp SRAM/Flash/ROM.
15 bit bus địa chỉ bên ngoài.
32 bit bus dữ liệu bên ngoài (LH79524).
16 bit bus dữ liệu bên ngoài (LH79525).
- Bộ điều khiển đa luồng DMA có 4 luồng dữ liệu burst 32 bit.
- Xung clock và quản lý nguồn
• Dao động 32.768 KHz dùng để tạo Real Time Clock.
• Hỗ trợ dao động 10 MHz đến 20 MHz, on chip PLL.
• Chế độ active, standby, sleep, stop1, stop2.
• Hỗ trợ nguồn xung clock ngoài.
- On Chip Boot ROM: cho phép boot từ các thiết bị 8, 16, 32 bit.
- NAND Flash Boot.
- Công suất nguồn thấp
• Active Mode: 85 mA (MAX.).
• Standby Mode: 50 mA (MAX.).
• Sleep Mode: 3.8 mA (TYP.).
• Stop Mode 1: 420 µA (TYP.).
• Stop Mode 2: 25 µA (TYP.).
- Hỗ trợ USB 2.0 (full speed) 12Mbit/s.
- Ethernet MAC với giao diện MMI và MDIO
• Phù hợp với IEEE 802.3.
• Hoạt động ở 10 Mbit/s và 100 Mbit/s.
- Bộ chuyển đổi tương tự sang số DAC/Brownout Detector
• 10 bit ADC.
• Ngắt khi có chạm bút.
• Tích hợp Touch Screen Controller (TSC).
- Module I2C.
- Tích hợp tính năng hỗ trợ giao tiếp với Codec (I2S).
- Watchdog Timer.
- Điều khiển ngắt Vector
• 16 Standard và 16 Vector ngắt IRQ.
• Ngắt Individually Configurable cho IRQ hoặc FIQ.
- 3 UART
• 16 entry FIFOs cho Rx và Tx.
• Hỗ trợ IrDA SIR trên 3 UART.
- Hai bộ Timer 16 bit.
- Real Time Clock
• Bộ đếm lên 32 bit Programmable Load.
• Match Compare Register 32 bit lập trình được.
- Các ngõ vào I/O lập trình được
• LH79524: 108 pin/14 port.
• LH79525: 86 pin/12 port.
- Bộ điều khiển màu LCD lập trình được
• 16 bit/điểm ảnh (LH79524) và 12 bit/điểm ảnh (LH79525).
• Độ phân giải lên đến 800×600.
• STN, Color STN, HR-TFT, AD-TFT, TFT.
• TFT: hỗ trợ 64K (LH79524) hoặc 4K (LH79525).
- Port nối tiếp đồng bộ hỗ trợ tốc độ dữ liệu lên đến 1.8452 Mbit/s.
- Giao diện Debug JTAG và Boundary Scan.
- 5V Tolerant Digital Inputs (trừ chân oscillator): chân XTALIN và XTAL32IN là 1.8V ± 10%.
- Bộ điều chỉnh On Chip cho phép cấp nguồn đơn 3.3V.
`
Hình 1.1 Sơ đồ ứng dụng của LH79525
Hình 1.2 Sơ đồ khối LH79525
1.2 Boot Controller
Hình 1.3 Sơ đồ khối của Boot Controller
1.2.1 Nguyên tắc hoạt động
1.2.1.1 Xác định Boot Device
Bảng 1.1 Cấu hình Boot cho Silicon phiên bản A.0
Bảng 1.2 Cấu hình Boot cho Silicon phiên bản A.1
1.2.1.2 Boot dùng giao tiếp I2C
Bảng 1.3 Thông số Boot từ I2C
Bảng 1.4 Thiết bị được hỗ trợ Boot từ I2C
1.2.1.3 Boot từ UART
Bảng 1.5 Thông số Boot UART0
1.2.2 Các thanh ghi
1.2.2.1 Bản đồ bộ nhớ
Bảng 1.6 Tóm lược thanh ghi điều khiển Boot
1.2.2.2 Power-up Boot Configuration Register (PBC)
Bảng 1.7 Thanh ghi PBC
1.2.2.3 nCS1 Override Register (CS1OV)
Bảng 1.8 Thanh ghi CS1OV
1.2.2.4 External Peripheral Mapping Register (EPM)
Bảng 1.9 Thanh ghi EPM
1.3 Điều khiển bộ nhớ ngoài EMC
1.3.1 Giới thiệu chung về EMC
EMC cung cấp mọi giao tiếp và các hàm điều khiển cả 2 bộ nhớ tĩnh và động của thiết bị. EMC bao gồm các đặc điểm:
- Giao tiếp bộ nhớ động bao gồm: SDRAM, JEDEC low-power SDRAM.
- Giao tiếp bộ nhớ tĩnh không đồng bộ gồm: RAM, ROM, FLASH.
- Đọc và ghi buffer để giảm thời gian trễ và cải thiện chất lượng.
- Được cung cấp 16 đến 32 bit bộ nhớ tĩnh.
- 16 bit bộ nhớ đồng bộ SDRAM.
- Bộ nhớ tĩnh có đặc điểm:
Chế độ đọc bất đồng bộ.
Trạng thái chờ lập trình được.
Delay bus theo chu kì.
Ngõ ra cho phép tạo trễ ở chế độ ghi.
Chế độ chờ mở rộng.
Có thể kéo dài chế độ chờ bằng cách sử dụng chân nWAIT.
- 2 chip select cho việc đồng bộ và 4 chip select cho bộ nhớ tĩnh của thiết bị.
- 4 bộ nhớ Byte Lane Selects cho bộ nhớ tĩnh của thiết bị.
- Chế độ boot 8, 16, 32 bit.
1.3.2 Nguyên tắc hoạt động
Hình 1.4 Sơ đồ khối EMC
EMC hỗ trợ 6 bank bộ nhớ bên ngoài. Các bank này cùng chiếm 384MB của không gian địa chỉ. Đối với một chu kỳ bộ nhớ SRAM, bit 31 đến bit 26 được giải mã để lựa chọn đúng bộ nhớ đồng hồ pha và chip thích hợp. Bit 25 đến bit 2 được truyền như địa chỉ bên ngoài đến các bank bộ nhớ có độ rộng 32 bit bộ nhớ ngoài, bit 24 đến bit 1 được truyền cho độ rộng 16 bit bộ nhớ bên ngoài và từ bit 23 đến bit 0 được truyền cho độ rộng 8 bit, bộ nhớ bên ngoài. Bất kể chiều rộng bộ nhớ, bit địa chỉ có trọng số thấp nhất (LSB) sẽ xuất ra ở chân A0.
Trong một chu kỳ bộ nhớ SDRAM, bank được truy cập dựa trên tín hiệu Chip Select. Điều này có được bằng cách giải mã bit địa chỉ 28. Một giá trị của 0 gây ra chip chọn 0 để được khẳng định. Địa chỉ 27 bit 0 được truyền đi như địa chỉ ngoài của các bank bộ nhớ.
EMC cung cấp phần cứng hỗ trợ việc boot từ bộ nhớ ngoài cố định. Trong suốt quá trình boot, bộ nhớ ngoài cố định phải được xác định ở địa chỉ 0x00000000 trong bộ nhớ. Khi hệ thống được boot thì nCS0, nCS1, hay nDCS0 phải được remap đến địa chỉ 0x00000000 bằng phần mềm. Boot device được chọn bằng trạng thái của PC[7:4].
1.3.3 Bộ nhớ tĩnh
Giao thức bộ nhớ tĩnh bất đồng bộ bên ngoài. Tuy nhiên, LH79524/LH79525 tạo ra những tín hiệu bất đồng bộ bên ngoài bằng cách sử dụng hệ thống xung clock nội để đồng bộ kiểm soát việc chuyển đổi. Như vậy, thời gian của các tín hiệu bộ nhớ tĩnh thì dễ dàng tham chiếu với tần số dao động nội của hệ thống.
EMC tăng các địa chỉ bằng cách tự động dịch địa chỉ ngõ ra trên bus bộ nhớ ngoài. Đối với các hệ thống bộ nhớ 8 bit, tín hiệu địa chỉ A0 được kết nối đến địa chỉ chân A0. Đối với các hệ thống bộ nhớ 16 bit, việc định địa chỉ không cần tín hiệu A0, địa chỉ truy cập bắt đầu từ halfword boundaries. Đối với hệ thống 32 bit, cả tín hiệu địa chỉ A0 và A1 không cần thiết vì truy cập bộ nhớ bắt đầu từ word boundaries. Byte Lane Enables nên được sử dụng cho những địa chỉ byte riêng lẻ.
Hình 1.5 cho thấy cách các tín hiệu địa chỉ nội bộ được chuyển sang các chân địa chỉ. Ví dụ, trong cấu hình thể hiện trong hình 1.5, chiều rộng bộ nhớ thiết bị đã được thiết lập đến 32 bit bằng cách lập trình các SCONFIGx: trường MW là 0b10. Lưu ý rằng đây là chiều rộng của bộ nhớ hệ thống kết nối, không phải là thiết bị. Vì vậy, nếu hai thiết bị bộ nhớ 16 bit được kết nối như một hệ thống mở rộng 32 bit thì trường MW phải được lập trình là 0b10 cho 32 bit. Nếu các thiết bị 16 bit được kết nối thành một hệ thống mở rộng 16 bit thì lập trình MW là 0b01, và chuyển mạch trong hình 1.5 sau đó sẽ di chuyển đến vị trí '01', mà kết nối tín hiệu địa chỉ A1 để pin A0 và... Tự động chuyển sang địa chỉ đơn giản hóa rất nhiều phần cứng thiết kế và layout. Ngoài ra, bởi vì tất cả 23 dòng địa chỉ bên ngoài có thể được sử dụng cho hệ thống 16 bit và 32 bit, số lượng các địa điểm địa chỉ tăng gấp đôi hoặc gấp bốn so với bộ điều khiển bộ nhớ mà không thay đổi địa chỉ.
Hình 1.5 Chuyển địa chỉ tự động
1.3.4 Chọn thiết bị bộ nhớ tĩnh
Bảng 1.10 Cấu hình bộ nhớ tĩnh
Ghi chú:
1. SRAM và các thiết bị bộ nhớ Flash có thể được bảo vệ nếu cần.
2. Bộ đệm phải được vô hiệu hoá khi thực hiện các lệnh trong bộ nhớ Flash.
3. Bật bộ đệm có nghĩa là truy cập vào bất kỳ nguyên nhân các bộ đệm sẽ được sử dụng. Tùy thuộc vào ứng dụng, điều này có thể cung cấp cải thiện hiệu suất.
1.3.5 Bộ nhớ động
1.3.5.1 Write-protection
Đối với bộ nhớ động, Chip Select có thể được cấu hình ở chế độ write-protection bằng cách cài đặt các bit liên quan trong write-protect field trong thanh ghi DYNCFGx (DYNCFGx:P). Nếu có một lệnh ghi được thực hiện trong write-protected memory bank thì ERROR response sẽ được tạo ra ở tín hiệu HRESP[1:0].
1.3.5.2 Access Sequencing and Memory Width
Cấu hình chiều rộng dữ liệu của từng không gian Chip Select bên ngoài bằng lập trình thích hợp thanh ghi DYNCFGx. Nếu chiều rộng bus dữ liệu Chip Select hẹp hơn so với yêu cầu từ các bus master AMBA hiện hành, việc chuyển bus nội bộ mất một số bus bên ngoài chuyển để hoàn thành. Ví dụ, nếu Chip Select 1 (nDCS1) được cấu hình như bộ nhớ 16 bit mở rộng và 32 bit đọc là bắt đầu 32 bit read is initiated, AHB ngừng khi EMC đọc hai word liên tiếp từ bộ nhớ. Trong suốt quá trình truy cập EMC, dữ liệu được chuyển thành word 32 bit và chuyển vào AHB.
1.3.5.3 Data Mask Signals
Tùy thuộc vào độ rộng hệ thống bộ nhớ ngoài và kích thước toán hạng, một hoặc hai chu kì bộ nhớ có thể được yêu cầu cho việc truyền toán hạng. Tín hiệu mặt nạ dữ liệu (Data Mask) DQM[3:0] lựa chọn giai đoạn data phase cho mỗi chu kì.
Bảng 1.11 Ví dụ về hệ thống bộ nhớ
• Đối với hệ thống bộ nhớ 32 bit, chỉ cần 1 chu kì bộ nhớ cho bất kì dữ liệu nào được truyền đi, cấu hình DQM trong chu kì ghi bị vô hiệu hóa.
• Đối với hệ thống bộ nhớ 16 bit, DQM[1] được sử dụng như memory system upper data mask (UDQM) và DQM[0] được sử dụng như lower data mask (LDQM).
• Đối với 32 bit truyền trong hệ thống bộ nhớ 16 bit thì cần 2 bộ nhớ data phase để hoàn thành chu kì bộ nhớ. Half word (16 bit) và byte-width được truyền trong 1 data phase.
1.4 General purpose input/output (GPIO)
LH79525 có 11 port với 86 chân. Các chân trong mỗi port có thể được cấu hình là ngõ vào hay ngõ ra riêng biệt, ngoại trừ port J và port M.
Bảng 1.12 GPIO Ports
1.4.1 Cấu hình Port
Ngay khi Reset thì tất cả các port được cấu hình là input ngoại trừ port J, M. Hai port này không được cấu hình là GPIO khi Reset.
Mỗi chân GPIO có thể được kết hợp một hay nhiều chức năng khác nhau. Để tác động đến các chân GPIO thì ta dùng 2 thanh ghi P1DDRx và P2DDRx. Dữ liệu sẽ được ghi hay đọc trên thanh ghi P1DRx và P2DRx.
Để mô tả các hàm của các chân GPIO ta có các bảng cụ thể sau.
Bảng 1.13 LH79525 GPIO Multiplexing
Bảng 1.14 LH79525 GPIO Multiplexing (tiếp theo)
1.4.2 Thanh ghi GPIO
1.4.2.1 Sơ đồ bộ nhớ
Địa chỉ cho các thanh ghi GPIO:
Bảng 1.15 Bản đồ bộ nhớ của port GPIO
1.4.2.2 Mô tả các thanh ghi
Port A/C/E/G/I/K/M Data Registers (P1DRx)
Nếu P1DDRx Data Direction được set cho ngõ ra thì giá trị ghi vào P1DRx là giá trị ngõ ra trên các chân PA/PC/PE/PG/PI/PK/PM.
Nếu bit Data Direction Register được set cho ngõ vào thì giá trị đọc được là trạng thái chân GPIO.
Bảng 1.16 Thanh ghi P1DRx
Bảng 1.17 Trường P1DRx
Việc đọc thanh ghi này cho ta thấy:
Bit cuối cùng sẽ được ghi nếu bit được cấu hình như ngõ ra.
Giá trị tức thời trên port tương ứng nếu được cấu hình như ngõ vào.
Port B/D/F/H/J/L/N Data Register (P2DRx)
Nếu P2DDRx Data Direction được set cho ngõ ra thì giá trị ghi vào P2DRx là giá trị ngõ ra trên các chân PB/PD/PF/PH/PJ/PL/PN.
Nếu bit Data Direction Register được set cho ngõ vào thì giá trị đọc được là trạng thái chân GPIO.
Bảng 1.18 Thanh ghi P2DRx
Bảng 1.19 Trường P2DRx
Việc đọc thanh ghi này cho ta thấy:
Bit cuối cùng sẽ được ghi nếu bit được cấu hình như ngõ ra.
Giá trị tức thời trên port tương ứng nếu được cấu hình như ngõ vào.
Port A/C/E/G/I/K Data Direction Register (P1DDRx)
Bảng 1.20 Thanh ghi P1DDRx
Bảng 1.21 Trường P1DDRx
Việc đọc thanh ghi này cho ta thấy:
Bit cuố