รู้เบื้องต้นเกี่ยวกับสถาปัตยกรรมไมโครคอนโทรลเลอร์ LPC2148 ที่ใช้ ARM7

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ARM (Advanced RISC Machine) ได้เปิดตัวโปรเซสเซอร์หลายตัวที่มีคุณสมบัติที่แตกต่างกันรวมถึงคอร์ที่แตกต่างกันสำหรับการใช้งานที่หลากหลาย การออกแบบสถาปัตยกรรม ARM รุ่นแรกมีโปรเซสเซอร์ 26 บิต แต่ตอนนี้มาถึงโปรเซสเซอร์ 64 บิตแล้ว การขยายทั่วไปของผลิตภัณฑ์ ARM ไม่สามารถจัดหมวดหมู่เป็นข้อมูลเฉพาะบางอย่างได้ แต่ผลิตภัณฑ์ ARM สามารถเข้าใจได้ตามสถาปัตยกรรม โปรเซสเซอร์ ARM ซีรีส์มาตรฐานที่มีอยู่ในตลาดเริ่มตั้งแต่ ARM7 ถึง ARM11 โปรเซสเซอร์เหล่านี้มีคุณสมบัติหลายอย่างเช่นแคชหน่วยความจำ Data Tightly Coupled MPU MMU ฯลฯ ซีรีส์โปรเซสเซอร์ ARM ที่รู้จักกันอย่างแพร่หลาย ได้แก่ ARM926EJ-S, ARM7TDMI และ ARM11 MPCore บทความนี้มีไว้โดยเฉพาะสำหรับภาพรวมสถาปัตยกรรมไมโครคอนโทรลเลอร์ LPC2148 ที่ใช้ ARM7 ซึ่งจะให้ข้อมูลสั้น ๆ เกี่ยวกับ ไมโครคอนโทรลเลอร์ สถาปัตยกรรม.

สถาปัตยกรรมไมโครคอนโทรลเลอร์ LPC2148 ที่ใช้ ARM7

ARM7 เป็นแบบ 32 บิตทั่วไป ไมโครโปรเซสเซอร์ และมีคุณสมบัติบางอย่างเช่นการใช้พลังงานเพียงเล็กน้อยและประสิทธิภาพสูง สถาปัตยกรรมของ ARM นั้นขึ้นอยู่กับไฟล์ หลักการของ RISC . กลไกการถอดรหัสที่เกี่ยวข้องรวมถึงชุดคำสั่ง RISC นั้นง่ายมากเมื่อเราเปรียบเทียบกับ CISC แบบไมโครโปรแกรม -Complex ชุดคำสั่งคอมพิวเตอร์




วิธี Pipeline ใช้สำหรับการประมวลผลบล็อกทั้งหมดในสถาปัตยกรรม โดยทั่วไปชุดคำสั่งเดียวกำลังดำเนินการจากนั้นระบบจะแปลชุดคำสั่งที่สืบทอดมา & a 3- คำแนะนำกำลังได้รับจากหน่วยความจำ

พิเศษ แผนสถาปัตยกรรมของ ARM7 เรียกว่า Thumb และเหมาะอย่างยิ่งสำหรับการใช้งานปริมาณมากซึ่งความกะทัดรัดของโค้ดเป็นเรื่องสำคัญ ARM7 ยังใช้สถาปัตยกรรมพิเศษคือ Thumb ทำให้เหมาะอย่างยิ่งสำหรับการใช้งานที่แตกต่างกันเนื่องจากข้อ จำกัด ของหน่วยความจำซึ่งความหนาแน่นของรหัสเป็นเรื่องสำคัญ



สถาปัตยกรรมไมโครคอนโทรลเลอร์ที่ใช้ ARM7 (LPC2148)

สถาปัตยกรรมไมโครคอนโทรลเลอร์ที่ใช้ ARM7 (LPC2148)

ขัดจังหวะแหล่งที่มา

อุปกรณ์ต่อพ่วงทุกชิ้นประกอบด้วยสายขัดจังหวะเส้นเดียวที่เชื่อมโยงกับ VIC ​​(ตัวควบคุมการขัดจังหวะเวกเตอร์) แม้ว่าจะมีแฟล็กอินเทอร์รัปต์ต่างๆอยู่ภายใน แฟล็กอินเทอร์รัปต์แต่ละรายการยังสามารถบ่งบอกถึงทรัพยากรการขัดจังหวะ


หน่วยความจำโปรแกรมแฟลชบนชิป

ไมโครคอนโทรลเลอร์ LPC2141 / 42/44/46/48 ประกอบด้วยหน่วยความจำแฟลชเช่น 32 กิโลไบต์กิโลไบต์ 128 กิโลไบต์ 256 กิโลไบต์ตามลำดับ หน่วยความจำแฟลชนี้สามารถใช้สำหรับการจัดเก็บข้อมูลและรหัส การเขียนโปรแกรมหน่วยความจำแฟลชสามารถทำได้ในระบบผ่านพอร์ตอนุกรม

แอปพลิเคชันโปรแกรมอาจลบออกในขณะที่แอปพลิเคชันของโปรแกรมกำลังทำงานอยู่อนุญาตให้มีความยืดหยุ่นในการปรับปรุงเฟิร์มแวร์ฟิลด์การจัดเก็บข้อมูลเป็นต้นเนื่องจากการเลือกโซลูชันสถาปัตยกรรมสำหรับ bootloader บนชิปหน่วยความจำที่มีอยู่สำหรับไมโครคอนโทรลเลอร์ LPC2141 / 42 / 44/46/48 คือ 32 กิโลไบต์กิโลไบต์ 128 กิโลไบต์ 256 กิโลไบต์และ 500 กิโลไบต์ หน่วยความจำแฟลชของไมโครคอนโทรลเลอร์เหล่านี้มีการลบ 1, 00,000 ครั้งต่อรอบและการเก็บรักษาข้อมูลเป็นเวลาหลายปี

Pin Connect Block

บล็อกนี้อนุญาตให้พินที่เลือกของไมโครคอนโทรลเลอร์ LPC2148 ที่ใช้ ARM7 สำหรับการมีฟังก์ชันต่างๆ มัลติเพล็กเซอร์ สามารถควบคุมได้โดยรีจิสเตอร์คอนฟิกูเรชันเพื่ออนุญาตการเชื่อมโยงระหว่างพินและอุปกรณ์ต่อพ่วงบนชิป

อุปกรณ์ต่อพ่วงต้องคู่กับหมุดที่เหมาะสมก่อนที่จะถูกทริกเกอร์และก่อนหน้านี้จะอนุญาตให้มีการขัดจังหวะการเชื่อมต่อใด ๆ การทำงานของไมโครคอนโทรลเลอร์สามารถกำหนดได้โดยโมดูลควบคุมพินโดยการเลือกพินของรีจิสเตอร์ในสภาพแวดล้อมฮาร์ดแวร์ที่กำหนด

หลังจากจัดเรียงพินของพอร์ตใหม่ทั้งหมด (พอร์ต 0 และพอร์ต 1) จะถูกจัดเรียงเป็น i / p ตามข้อยกเว้นที่กำหนด หากอนุญาตให้แก้ไขข้อบกพร่อง

หากอนุญาตให้แก้ไขข้อบกพร่องหมุดของ JTAG จะคาดเดาการทำงานของ JTAG หากอนุญาตการติดตามพิน Trace จะเดาการทำงานของการติดตาม หมุดที่เชื่อมต่อกับพิน I2C0 และ I2C1 เป็นท่อระบายน้ำแบบเปิด

GPIO- อินพุต / เอาต์พุตแบบขนานสำหรับวัตถุประสงค์ทั่วไป

GPIO ลงทะเบียนควบคุมพินของอุปกรณ์ซึ่งไม่ได้เชื่อมโยงกับฟังก์ชันอุปกรณ์ต่อพ่วงเฉพาะ สามารถจัดเรียงพินอุปกรณ์เป็น i / p [s หรือ o / ps การลงทะเบียนส่วนบุคคลอนุญาตให้ล้าง o / p จำนวนเท่าใดก็ได้พร้อมกัน ค่ารีจิสเตอร์เอาต์พุตสามารถอ่านย้อนกลับและสภาพปัจจุบันของพินพอร์ต ไมโครคอนโทรลเลอร์เหล่านี้เริ่มต้นฟังก์ชันเร่งความเร็วบนอุปกรณ์ LPC200

การลงทะเบียนอินพุต / เอาท์พุตวัตถุประสงค์ทั่วไปจะถูกย้ายไปยังบัสโปรเซสเซอร์ที่ใช้สำหรับเวลา I / O ที่เป็นไปได้ดีที่สุด

  • การลงทะเบียนเหล่านี้เป็นไบต์ที่กำหนดแอดเดรสได้
  • มูลค่ารวมของพอร์ตสามารถเป็นได้
  • ค่าที่สมบูรณ์ของพอร์ตสามารถเขียนได้ในคำสั่งเดียว

ADC 10 บิต (ตัวแปลงอนาล็อกเป็นดิจิตอล)

ไมโครคอนโทรลเลอร์เช่น LPC2141 หรือ 42 มีสองตัว ตัวแปลง ADC และนี่เป็นเพียง 10 บิตเท่านั้นที่มีหนึ่งตัวและ LPC2144 / 46/48 มี ADC สองตัวและเป็น ADC ประมาณ 10 บิตเท่านั้น แม้ว่า ADC0 จะมี 6 ช่องและ ADC1 มี 8 ช่อง ดังนั้นจำนวน ADC i / ps ที่สามารถเข้าถึงได้สำหรับ LPC2141 หรือ 42 คือ 6 & 14 สำหรับ LPC2141 หรือ 42

DAC 10 บิต (ตัวแปลงดิจิตอลเป็นอนาล็อก)

DAC ช่วยให้ไมโครคอนโทรลเลอร์เหล่านี้ผลิตอะนาล็อก o / p ที่เปลี่ยนแปลงได้และ VREFเป็นผลลัพธ์สูงสุดของไฟล์ ดิจิตอลเป็นอนาล็อก แรงดันไฟฟ้า.

ตัวควบคุมอุปกรณ์ -USB 2.0

บัสอนุกรมสากลประกอบด้วยสายไฟ 4 สายและให้การสนับสนุนสำหรับการสื่อสารระหว่างอุปกรณ์ต่อพ่วงและโฮสต์จำนวนมาก ตัวควบคุมนี้อนุญาตให้ใช้แบนด์วิดท์ของ USB สำหรับการเชื่อมต่ออุปกรณ์โดยใช้โปรโตคอลตามโทเค็น

บัสรองรับการถอดปลั๊กร้อนและคอลเลกชันแบบไดนามิกของอุปกรณ์ ทุกการสื่อสารเริ่มต้นผ่านโฮสต์คอนโทรลเลอร์ ไมโครคอนโทรลเลอร์เหล่านี้ได้รับการออกแบบด้วยคอนโทรลเลอร์อุปกรณ์บัสอนุกรมสากลที่อนุญาตให้แทนที่ข้อมูล 12 Mbit / วินาทีโดยโฮสต์คอนโทรลเลอร์ของ USB

UART

ไมโครคอนโทรลเลอร์เหล่านี้มี UART สองตัวสำหรับการส่งและรับสายข้อมูลมาตรฐาน ตรงกันข้ามกับไมโครคอนโทรลเลอร์รุ่นก่อนหน้า (LPC2000) UART ในไมโครคอนโทรลเลอร์ LPC2141 / LPC2142 / LPC2144 / LPC2146 / LPC2148 เริ่มต้นเครื่องกำเนิดอัตราบอดบางส่วนที่ใช้กับ UART ทั้งสองทำให้ไมโครคอนโทรลเลอร์ประเภทนี้สามารถบรรลุอัตราการส่งข้อมูลทั่วไปเช่น 115200 โดยทุกความถี่คริสตัลที่มากกว่า 2 MHz . นอกจากนี้ฟังก์ชั่นการควบคุมเช่น CTS / RTS จะดำเนินการอย่างสมบูรณ์ในฮาร์ดแวร์

Serial I / O Controller ของ I2C-bus

ไมโครคอนโทรลเลอร์แต่ละตัวจาก LPC2141 / LPC2142 / LPC2144 / LPC2146 / LPC2148 ประกอบด้วย สอง I2C ตัวควบคุมบัสและเป็นแบบสองทิศทาง การควบคุมระหว่าง IC สามารถทำได้ด้วยความช่วยเหลือของสายไฟสองเส้นคือ SCL และ SDA ที่นี่ SDA & SCL คือสายนาฬิกาแบบอนุกรมและสายข้อมูลอนุกรม

อุปกรณ์ทุกชิ้นจะถูกระบุโดยที่อยู่ของแต่ละบุคคล ที่นี่เครื่องส่งและตัวรับสามารถทำงานได้สองโหมดเช่นโหมดหลัก / โหมดทาส นี่คือบัสหลายต้นแบบและสามารถจัดการได้โดยหนึ่งหรือหลายบัสโทที่เชื่อมโยงกับมัน ไมโครคอนโทรลเลอร์เหล่านี้รองรับอัตราบิตสูงถึง 400 kbit / s

SPI Serial Input / Output Controller

ไมโครคอนโทรลเลอร์เหล่านี้มีคอนโทรลเลอร์ SPI ตัวเดียวและมีจุดมุ่งหมายเพื่อจัดการกับจ้าวและทาสจำนวนมากที่เกี่ยวข้องกับบัสที่ระบุ

เพียงแค่เจ้านายและทาสสามารถสนทนาผ่านอินเทอร์เฟซตลอดการส่งข้อมูลที่ระบุ ในระหว่างนี้มาสเตอร์จะส่งข้อมูลไบต์ไปยังทาสอย่างต่อเนื่องและทาสจะส่งข้อมูลไปยังมาสเตอร์อย่างต่อเนื่อง

SSP Serial Input / Output Controller

ไมโครคอนโทรลเลอร์เหล่านี้ประกอบด้วย SSP ตัวเดียวและคอนโทรลเลอร์นี้สามารถประมวลผลบน SPI, Microwire bus หรือ 4-wire SSI มันสามารถสื่อสารกับรถบัสของปรมาจารย์หลายคนเช่นเดียวกับทาส

แต่เพียงแค่นายเฉพาะเช่นเดียวกับทาสเท่านั้นที่สามารถสนทนาบนบัสตลอดการส่งข้อมูลที่ระบุ ไมโครคอนโทรลเลอร์นี้รองรับการถ่ายโอนแบบฟูลดูเพล็กซ์โดยเฟรมข้อมูล 4-16 บิตที่ใช้สำหรับการไหลของข้อมูลจากมาสเตอร์ - ทาสและจากทาส - มาสเตอร์

ตัวจับเวลา / ตัวนับ

ตัวจับเวลาและตัวนับ ได้รับการออกแบบมาสำหรับการนับรอบ PCLK (นาฬิกาอุปกรณ์ต่อพ่วง) และเลือกที่จะสร้างการขัดจังหวะตามการลงทะเบียน 4 นัด

และประกอบด้วยสี่การจับภาพ i / ps เพื่อตรวจจับค่าของตัวจับเวลาเมื่อสัญญาณ i / p เปลี่ยนไป สามารถเลือกพินหลายตัวเพื่อดำเนินการจับภาพเฉพาะ ไมโครคอนโทรลเลอร์เหล่านี้สามารถคำนวณเหตุการณ์ภายนอกในอินพุตของการจับภาพได้หากมีค่าเท่ากันของพัลส์ภายนอกน้อยที่สุด ในการจัดเรียงนี้สามารถเลือกเส้นจับภาพที่ไม่ได้ใช้งานได้ตามปกติการจับภาพตัวจับเวลา i / ps

ตัวจับเวลา Watchdog

ตัวจับเวลา watchdog ใช้สำหรับรีเซ็ตไมโครคอนโทรลเลอร์ในระยะเวลาที่เหมาะสม เมื่อได้รับอนุญาตตัวจับเวลาจะทำการรีเซ็ตระบบหากโปรแกรมผู้บริโภคไม่ประสบความสำเร็จในการโหลดตัวจับเวลาซ้ำในจำนวนเวลาที่กำหนด

RTC- นาฬิกาเรียลไทม์

RTC มีไว้สำหรับจัดเตรียมตัวนับเพื่อคำนวณเวลาที่เลือกไม่ได้ใช้งานหรือวิธีการทำงานปกติ RTC ใช้พลังงานเพียงเล็กน้อยและออกแบบมาเพื่อการจัดเตรียมการขับเคลื่อนด้วยพลังงานแบตเตอรี่ที่เหมาะสมซึ่งหน่วยประมวลผลกลางไม่ทำงานตลอดเวลา

การควบคุมพลังงาน

ไมโครคอนโทรลเลอร์เหล่านี้รองรับโหมดพลังงานควบแน่นสองโหมดเช่นโหมดปิดเครื่องและโหมดไม่ได้ใช้งาน ในโหมดปกติการดำเนินการคำสั่งจะสมดุลจนกว่าจะมีการขัดจังหวะหรือ RST เกิดขึ้น ฟังก์ชั่นของอุปกรณ์ต่อพ่วงรักษาการทำงานตลอดโหมดว่างและสามารถสร้างการขัดจังหวะเพื่อทำให้ CPU เริ่มการทำงานใหม่ โหมด Idle จะลบพลังงานที่ CPU, คอนโทรลเลอร์, ระบบหน่วยความจำและบัสภายในใช้

ในโหมดปิดเครื่องออสซิลเลเตอร์จะถูกปิดใช้งานและ IC จะไม่มีนาฬิกาด้านใน การลงทะเบียนอุปกรณ์ต่อพ่วงเงื่อนไขของโปรเซสเซอร์พร้อมรีจิสเตอร์ค่า SRAM ภายในจะถูกสงวนไว้ในโหมดปิดเครื่องและพินเอาต์พุตระดับตรรกะของชิปจะคงที่

โหมดนี้สามารถเสร็จสิ้นได้และกระบวนการทั่วไปจะเริ่มต้นใหม่โดยการขัดจังหวะเฉพาะที่สามารถทำงานได้โดยไม่ต้องใช้นาฬิกา เนื่องจากการทำงานของชิปมีความสมดุลโหมด Power-down จึงลดการใช้พลังงานของชิปลงจนเกือบเป็นศูนย์

PWM -Pulse Width Modulator

PWM นั้นขึ้นอยู่กับตัวจับเวลาปกติและยังมีคุณสมบัติทั้งหมดแม้ว่าฟังก์ชันโมดูเลเตอร์ความกว้างพัลส์จะได้รับการแก้ไขในไมโครคอนโทรลเลอร์เช่น LPC2141 / 42/44/46/48

ตัวจับเวลามีไว้เพื่อคำนวณรอบ PCLK (นาฬิกาอุปกรณ์ต่อพ่วง) และสร้างการขัดจังหวะเป็นทางเลือกเมื่อค่าตัวจับเวลาเฉพาะเกิดขึ้นตามการลงทะเบียน 7 คู่และฟังก์ชัน PWM ยังขึ้นอยู่กับเหตุการณ์การลงทะเบียนที่ตรงกัน

ความสามารถในการควบคุมแต่ละตำแหน่งที่เพิ่มขึ้นและลดลงช่วยให้การมอดูเลตความกว้างของพัลส์สามารถใช้กับแอพพลิเคชั่นต่างๆได้ ตัวอย่างเช่นการควบคุมมอเตอร์โดยทั่วไปที่มีหลายเฟสจะใช้เอาต์พุตแบบไม่ซ้อนทับกัน 3 ตัวของ PWM โดยการควบคุมแยกความกว้างของพัลส์และตำแหน่ง

VPB บัส

ตัวแบ่ง VPB จะแก้ไขความสัมพันธ์ระหว่าง CCLK (นาฬิกาโปรเซสเซอร์) และ PCLK (นาฬิกาที่ใช้โดยอุปกรณ์ต่อพ่วง) ตัวแบ่งนี้ใช้เพื่อวัตถุประสงค์สองประการ การใช้งานครั้งแรกคือการจัดหาอุปกรณ์ต่อพ่วงโดย PCLK ที่ต้องการโดยใช้บัส VPB เพื่อให้สามารถทำงานได้ตามความเร็วที่เลือกของโปรเซสเซอร์ ARM เพื่อให้บรรลุเป้าหมายนี้ความเร็วบัสนี้สามารถลดอัตรานาฬิกาของโปรเซสเซอร์จาก 1 from 2 -1⁄ 4

เนื่องจากบัสนี้ต้องทำงานอย่างถูกต้องเมื่อเปิดเครื่องและสถานะเริ่มต้นที่ RST (รีเซ็ต) คือให้บัสทำงานที่ 1⁄ 4 ของอัตรานาฬิกาโปรเซสเซอร์ การใช้งานครั้งที่สองคือเพื่อให้ประหยัดพลังงานเมื่อใดก็ตามที่แอปพลิเคชันไม่จำเป็นต้องใช้อุปกรณ์ต่อพ่วงใด ๆ ในการทำงานในอัตราโปรเซสเซอร์ที่สมบูรณ์ เนื่องจากตัวแบ่ง VPB เชื่อมโยงกับเอาต์พุตของ PLL สิ่งนี้จะยังคงทำงานตลอดทั้งโหมดไม่ได้ใช้งาน

การจำลองและการแก้จุดบกพร่อง

ไมโครคอนโทรลเลอร์ (LPC2141 / 42/44/46/48) เก็บการจำลองและการดีบักผ่านพอร์ตอนุกรม -JTAG พอร์ตการติดตามอนุญาตให้ติดตามการทำงานของโปรแกรม ฟังก์ชันการติดตามและแนวคิดการดีบักถูกมัลติเพล็กซ์ด้วยพอร์ต 1 และ GPIO

ความปลอดภัยของรหัส

คุณลักษณะการรักษาความปลอดภัยรหัสของไมโครคอนโทรลเลอร์ LPC2141 / 42/44/46/48 อนุญาตให้มีฟังก์ชันควบคุมว่าจะป้องกันหรือแก้ไขข้อบกพร่องจากการตรวจสอบได้หรือไม่

ดังนั้นนี่คือข้อมูลเกี่ยวกับสถาปัตยกรรมไมโครคอนโทรลเลอร์ LPC2148 ที่ใช้ ARM7 จากบทความข้างต้นในที่สุดเราสามารถสรุปได้ว่า ARM เป็นสถาปัตยกรรมที่ใช้ในโปรเซสเซอร์จำนวนมากเช่นเดียวกับไมโครคอนโทรลเลอร์ นี่คือคำถามสำหรับคุณสถาปัตยกรรมของโปรเซสเซอร์ ARM คืออะไร?