300 likes | 452 Views
Memory. Objective ศึกษาถึง ระบบ หน่วยความจำประเภทต่างๆ ที่ใช้ในระบบ Microcontroller และ เข้าใจถึงการจัดการ การใช้งานหน่วยความจำของระบบ MCS – 51 ได้. Random Access Memory. RAM หรือหน่วยความจำที่เราสามารถใช้งานแบบสุ่มได้ โดยจะถูกกำหนดโดย 2 n x m
E N D
Memory Objective ศึกษาถึง ระบบ หน่วยความจำประเภทต่างๆ ที่ใช้ในระบบ Microcontroller และ เข้าใจถึงการจัดการ การใช้งานหน่วยความจำของระบบ MCS – 51 ได้
Random Access Memory RAM หรือหน่วยความจำที่เราสามารถใช้งานแบบสุ่มได้ โดยจะถูกกำหนดโดย 2n x m เมื่อ 2nจำนวนของตำแหน่งของ Address และ m คือ จำนวนของ bit ที่เก็บในแต่ละตำแหน่งเช่น 32 k x 8 คือ32 kilobyte จะได้ 2 15เท่ากับ 32,768
Read/Write memory Static RAM (SRAM) เป็นหน่วยความจำที่สามารถอ่านเขียนได้โดยมีพื้นฐานมาจากการใช้ flip – flop มาเป็นส่วนประกอบหลักในแนวในแถว และหลัก ( Row and Column ) ดังนั้นในการใช้งานเมื่อข้อมูลบรรจุอยู่ในตัว SRAM ข้อมูลจะไม่สูญหายตราบที่ยังมีไฟเลี้ยงอยู่
Dynamic RAM ( DRAM) DRAM จะใช้หน่วยเก็บข้อมูลเป็นตัวเก็บประจุ(capacitor) โดยลอจิก 1 หรือ 0 จะแทนโดยการที่มีประจุหรือไม่มีประจุ ข้อดีของ DRAM คือในการผลิตจะสามารถทำให้ความหนาแน่นต่อพื้นที่สูงทำให้ขนาดเล็ก แต่ในการใช้การจะต้องมีการ Refresh เพื่อให้ข้อมูลค้างอยู่
Read Only Memory (ROM) ROM คือหน่วยความจำที่สามารถอ่านได้อย่างเดียว สำหรับการเขียนจะต้องใช้เครื่องมือหรือวิธีเฉพาะ ในการเขียนข้อมูลลงไป โดยปกติแล้ว ROM จะใช้เป็น Program memory ROM จะแบ่งออกเป็นหลายประเภท เช่น Mask ROM , PROM , EPROM , EEPROM , Flash ROM ในปัจจุบันที่ที่เป็นที่นิยมใช้งานจะเป็นประเภท EEPROM และ FLASH
EPROM EPROM หรือ Erasable Programmable ROM เป็นหน่วยความจำที่สามารถลบเพื่อทำการ โปรแกรมใหม่ได้ ในการลบจะใช้แสง UV ส่องผ่านทางช่องที่อยู่ด้านบนไอซี แล้วจึงโปรแกรมด้วยเครื่องโปรแกรมโดยต้องทำการปิดช่องด้านบนไอซีด้วย
รูปแสดงการอ่านข้อมูลจาก EPROM รูปแสดงการลบโปรแกรมของ EPROM
EEPROM EEPROM หรือ Electrical Erasable Programmable Read Only Memory และ FLASH เป็นหน่วยความจำที่สามารถลบและเขียนข้อมูลได้โดยใช้ไฟฟ้า โดยสิ่งที่ต่างกันระหว่าง EEPROM กับ FLASH คือ ในการโปรแกรม EEPROM จะลบข้อมูลที่ละไบต์ แต่ FLASH จะลบข้อมูลที่ละ Block
JEDEC Memory Pin-Outs เป็นมาตรฐานการจัดเรียงขาไอซีของหน่วยความจำประเภทต่างๆ โดย JEDEC คือ Joint Electronic Device Engineering Committee
ขาที่ทำหน้าที่ต่างๆ ของ Memory • Vcc เป็นขาไฟเลี้ยง 5V • GND เป็นขา GND • CS ( Chip Select) หรือ CE ( Chip Enable) ใช้สำหรับเลือกให้ Chip นั้นทำงาน • OE ( Output Enable) เป็นขาที่บอกให้ตัว memory ส่งข้อมูลมา ปกติแล้วจะต่ออยู่กับขา RD ของ Microprocessor • WE ( Write Enable ) เป็นขาที่บอกตัว memory ว่าจะมีการเขียนข้อมูลลงในตัว memory • Vpp เป็นขาสำหรับป้อนไฟเลี้ยงในการเขียนข้อมูลลงใน EPROM
Parametric Considerations โดยปกติแล้วในการเชื่อมต่อระหว่างไมโครโปรเซสเซอร์กับหน่วยความจำ สำหรับการอ่านข้อมูลมีข้อพิจารณาคือเรื่องของ TAA (Address Access Time) TOE (Output Enable Time) TCE (Chip Enable Time)
โดยปกติแล้วในการเชื่อมต่อระหว่างไมโครโปรเซสเซอร์กับหน่วยความจำ สำหรับการเขียนข้อมูลมีข้อพิจารณาคือเรื่องของ TWP (Write Pulse Width) TAS (Address Setup Time) TAH (Address Hold Time) TDS (Data Setup Time) TDH (Data Hold Time)
MCS-51 Memory Organizations จากที่กล่าวมาในบทที่ 1 MCS – 51 จะใช้สถาปัตยกรรมภายในแบบ Harvard ที่จะแยก program memory กับ data memory ออกจากกัน
การเชื่อมต่อ 8051 กับ Data Memory
Memory Mapand Decode ในกรณีที่เรา แบ่งการใช้งานหน่วยความจำเป็นหลายประเภท เราต้องมีการจัดการหน่วยความจำเช่น พื้นที่ 0x0000 – 0x1FFF ของ หน่วยความจำโปรแกรม ใช้เป็นที่เก็บโปรแกรม Monitor หรือ 0x8000 – 0xFFFF ของ หน่วยความจำข้อมูลภายนอก ใช้เป็นที่เก็บข้อมูล หรือ 0x0000 – 0x0003 ใช้สำหรับการติดต่อ I/O เบอร์ 8255 ที่ต่อแบบ หน่วยความจำข้อมูลภายนอก จากที่กล่าวมาทั้งหมดเป็นการจัดการหน่วยความจำภายนอก ซึ่งเรียกว่า Memory Map
Memory Map จะใช้การแบ่งหน่วยความจำออกเป็นส่วน โดยเมื่อมีการต้องการใช้งานหน่วยความจำส่วนไหนก็ ทำการ Enable เฉพราะส่วนนั้น IC ที่นิยมใช้ในการ Encode memory เช่น 74LS1383 to 8 encoder โดยถ้าเรานำเอาขา A15 , A14 , A13 มาต่อเข้ากับขา A , B ,C ของ 74LS138 จะได้ตาราง MemoryMap ดังรูป
ตัวอย่างเช่น ถ้าเราออกแบบให้เชื่อมต่อ EPROM เบอร์ 27C256 และ SRAM เบอร์ HM62256โดยมี Address ที่ 0x0000 – 0x7FFF ของProgram Memory และ 0x8000 – 0xFFFF ของ Data Memory ตามลำดับ จะได้วงจรดังรูป
Work จงออกแบบวงจรที่เชื่อมต่อ 8051 กับ Data Memory เบอร์ HM6116 โดยตำแหน่งเริ่มต้นของ Data Memory อยู่ที่ 2000H จงออกแบบวงจรที่เชื่อมต่อ 8051 กับ Program Memory เบอร์ 28C64 จำนวน 2 ตัวโดยให้ตำแหน่งเริ่มต้นของ Program Memory อยู่ที่ 0000H และ C000H และมี Data Memory เบอร์ HM6116 ต่ออยู่ที่ตำแหน่งเริ่มต้น 8000H