Đồ án Xử lý file âm thanh và hình ảnh từ đĩa cứng

Ứ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.

doc153 trang | Chia sẻ: ngtr9097 | Lượt xem: 2677 | Lượt tải: 3download
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ố