Add Favorite ตั้งหน้าแรก
ตำแหน่ง:หน้าแรก >> ข่าว >> อิเล็กตรอน

หมวดหมู่สินค้า

ผลิตภัณฑ์แท็ก

ไซต์ Fmuser

บทนำสู่สถาปัตยกรรม ARM พร้อมหลักการทำงานของแต่ละโมดูล

Date:2021/10/18 21:55:01 Hits:
โปรเซสเซอร์ ARMโปรเซสเซอร์ ARM ไมโครคอนโทรลเลอร์ ARM ย่อมาจาก Advance RISC Machine; มันเป็นหนึ่งในคอร์โปรเซสเซอร์ที่กว้างขวางและได้รับใบอนุญาตมากที่สุดในโลก โปรเซสเซอร์ ARM ตัวแรกได้รับการพัฒนาในปี 1978 โดยมหาวิทยาลัยเคมบริดจ์ และโปรเซสเซอร์ ARM RISC ตัวแรกผลิตโดย Acorn Group of Computers ในปี 1985 โปรเซสเซอร์เหล่านี้ใช้เฉพาะในอุปกรณ์พกพา เช่น กล้องดิจิตอล โทรศัพท์มือถือ ระบบเครือข่ายในบ้าน โมดูลและเทคโนโลยีการสื่อสารไร้สาย และระบบฝังตัวอื่นๆ เนื่องจากคุณประโยชน์ เช่น ใช้พลังงานต่ำ ประสิทธิภาพที่เหมาะสม เป็นต้น บทความนี้ให้ภาพรวมของสถาปัตยกรรม ARM พร้อมหลักการทำงานของแต่ละโมดูล สถาปัตยกรรม ARM ตัวประมวลผลสถาปัตยกรรม ARM เป็นเครื่องคอมพิวเตอร์ชุดคำสั่งลดขั้นสูง [RISC] และเป็นไมโครคอนโทรลเลอร์คอมพิวเตอร์ชุดคำสั่งลดขนาด 32 บิต (RISC) เปิดตัวโดยองค์กรคอมพิวเตอร์ Acron ในปี 1987 ARM นี้เป็นตระกูลไมโครคอนโทรลเลอร์ที่พัฒนาโดยผู้ผลิตอย่าง ST Microelectronics, Motorola และอื่นๆ สถาปัตยกรรม ARM มาพร้อมกับเวอร์ชันที่แตกต่างกันโดยสิ้นเชิง เช่น ARMv1, ARMv2 เป็นต้น และแต่ละเวอร์ชันก็มีข้อดีและข้อเสียต่างกันไปสถาปัตยกรรม ARMสถาปัตยกรรม ARM ARM cortex เป็นไมโครคอนโทรลเลอร์ที่ซับซ้อนภายในตระกูล ARM ที่มีการออกแบบ ARMv7 มี 3 ครอบครัวย่อยภายในตระกูล ARM cortex : ARM Cortex Ax-seriesARM-Cortex Rx-seriesARM-Cortex Mx-seriesสถาปัตยกรรม ARM หน่วยคำนวณทางคณิตศาสตร์ ตัวคูณบูธBarrel shifterหน่วยควบคุมไฟล์ลงทะเบียนบทความนี้ครอบคลุมส่วนประกอบที่กล่าวถึงด้านล่าง โปรเซสเซอร์ ARM มีส่วนประกอบอื่น ๆ เช่นโปรแกรมร่วมกัน เช่น โปรแกรม การลงทะเบียนสถานะซึ่งมีแฟล็กโปรเซสเซอร์ (Z, S, V และ C) บิตของโหมดมีอยู่ร่วมกันภายในการลงทะเบียนสถานะโปรแกรม นอกเหนือจากบิตการขัดจังหวะและขัดจังหวะด่วน รีจิสเตอร์พิเศษบางตัว: รีจิสเตอร์บางตัวถูกใช้เช่นคำสั่ง รีจิสเตอร์สำหรับอ่านและเขียนข้อมูลหน่วยความจำ และรีจิสเตอร์แอดเดรสหน่วยความจำ ตัวเข้ารหัสลำดับความสำคัญ: ตัวเข้ารหัสถูกใช้ในคำสั่งการโหลดและจัดเก็บหลายรายการเพื่อระบุว่ารีจิสเตอร์ภายในไฟล์รีจิสเตอร์ที่จะโหลดหรือเก็บไว้ .Multiplexers: มัลติเพล็กเซอร์หลายตัวคุ้นเคยกับการจัดการบัสโปรเซสเซอร์ เนื่องจากโครงการมีเวลาจำกัด เราจึงมักจะนำส่วนประกอบเหล่านี้ไปใช้ในแบบจำลองเชิงพฤติกรรม แต่ละองค์ประกอบมีการอธิบายด้วยเอนทิตี ทุกเอนทิตีมีสถาปัตยกรรมของตัวเอง ซึ่งสามารถปรับให้เหมาะสมกับความจำเป็นบางอย่างขึ้นอยู่กับแอปพลิเคชัน ทำให้การออกแบบสร้างและบำรุงรักษาได้ง่ายขึ้น ARM บล็อกไดอะแกรมARM Block DiagramArithmetic Logic Unit (ALU) ALU มีอินพุต 32 บิตสองตัว ไฟล์หลักมาจากไฟล์ register ในขณะที่อีกไฟล์หนึ่งมาจาก shifter สถานะการลงทะเบียนแฟล็กที่แก้ไขโดยเอาต์พุต ALU เอาต์พุต V-bit ไปที่แฟล็ก V และ Count ไปที่แฟล็ก C ในขณะที่บิตที่สำคัญที่สุดแสดงถึงแฟล็ก S จริง ๆ การดำเนินการเอาท์พุต ALU นั้นทำโดย NORed เพื่อรับแฟล็ก Z ALU มีบัสฟังก์ชัน 4 บิตที่อนุญาตให้ใช้ opcode ได้มากถึง 16 ตัว ปัจจัยตัวคูณบูธปัจจัยคูณมีอินพุต 3 บิต 32 ตัว และอินพุตที่ส่งคืนจากไฟล์รีจิสเตอร์ เอาต์พุตตัวคูณนั้นแทบไม่มีนัยสำคัญน้อยที่สุด 32 บิตของสินค้า การแสดงเอนทิตีของปัจจัยตัวคูณจะแสดงในแผนภาพบล็อกด้านบน การคูณจะเริ่มเมื่อใดก็ตามที่อินพุต 04 เริ่มต้นทำงาน Fin ของเอาต์พุตจะสูงเมื่อเสร็จสิ้นอัลกอริทึม Booth AlgorithmBooth เป็นกฎอัลกอริธึมการคูณที่น่าสังเกตสำหรับตัวเลขเสริมของ 2 สิ่งนี้ถือว่าตัวเลขบวกและลบอย่างสม่ำเสมอ ยิ่งกว่านั้น การรันค่า 0 หรือ 1 ภายในตัวคูณจะถูกข้ามไปโดยไม่มีการบวกหรือการลบใดๆ จึงทำให้เกิดการคูณที่รวดเร็วขึ้น รูปภาพแสดงผลการจำลองสำหรับม้านั่งทดสอบตัวคูณ เป็นที่แน่ชัดว่าการคูณจะสิ้นสุดเพียงในวงจรนาฬิกา 16 รอบตัวเปลี่ยนเกียร์แบบ Barrel Shifter มีอินพุตแบบ 32 บิตที่จะเปลี่ยน อินพุตนี้กำลังกลับมาจากไฟล์รีจิสเตอร์หรืออาจเป็นข้อมูลในทันที ตัวเปลี่ยนเกียร์มีอินพุตควบคุมที่แตกต่างกันซึ่งกลับมาจากการลงทะเบียนคำสั่ง ฟิลด์ Shift ภายในคำสั่งควบคุมการทำงานของตัวเปลี่ยนกระบอกสูบ ฟิลด์นี้ระบุประเภทของการเปลี่ยนแปลงที่จะดำเนินการ (ตรรกะทางซ้ายหรือขวา เลขคณิตไปทางขวา หรือหมุนไปทางขวา) ปริมาณที่ควรเปลี่ยนการลงทะเบียนนั้นอยู่ในฟิลด์ทันทีภายในคำสั่ง หรืออาจเป็น 6 บิตที่ต่ำกว่าของรีจิสเตอร์ภายในไฟล์รีจิสเตอร์ บัสอินพุต shift_val เป็น 6 บิต อนุญาตให้เปลี่ยนได้สูงสุด 32 บิต ประเภทกะระบุว่ากะที่ต้องการคือ 00, 01, 10, 11 ซึ่งสอดคล้องกับการเลื่อนไปทางซ้าย, การเลื่อนไปทางขวา, การเลื่อนเลขคณิตไปทางขวา และการหมุนทางขวาตามลำดับ ตัวเปลี่ยนกระบอกสูบสร้างขึ้นด้วยมัลติเพล็กเซอร์โดยเฉพาะ ชุดควบคุมสำหรับไมโครโปรเซสเซอร์ใดๆ ชุดควบคุมเป็นหัวใจสำคัญของกระบวนการทั้งหมด และมีหน้าที่รับผิดชอบในการทำงานของระบบ ดังนั้นการออกแบบชุดควบคุมจึงเป็นส่วนที่สำคัญที่สุดในดีไซน์ทั้งหมด หน่วยควบคุมบางครั้งมีการออกแบบวงจรผสมแบบบริสุทธิ์ ที่นี่ชุดควบคุมถูกใช้งานโดยเครื่องสถานะง่าย ๆ เวลาของโปรเซสเซอร์รวมอยู่ในชุดควบคุมเพิ่มเติม สัญญาณจากชุดควบคุมเชื่อมต่อกับแต่ละส่วนประกอบภายในโปรเซสเซอร์เพื่อควบคุมการทำงานของมัน แผนภาพการทำงานของ ARM7 สิ่งสุดท้ายที่ต้องอธิบายคือวิธีการใช้ ARM และลักษณะที่ปรากฏของชิป แผนภาพการทำงานของ ARMARM Functional Diagram ARM Microcontroller Register Modes ARM micrcontroller คือโหลดสโตร์ที่ลดชุดคำสั่งสถาปัตยกรรมคอมพิวเตอร์หมายความว่าแกนหลักไม่สามารถทำงานได้โดยตรงกับหน่วยความจำ การดำเนินการข้อมูลต้องทำโดยการลงทะเบียนและข้อมูลจะถูกเก็บไว้ในหน่วยความจำตามที่อยู่ ARM cortex-M3 ประกอบด้วยชุดรีจิสเตอร์ 37 ชุด โดย 31 ชุดเป็นรีจิสเตอร์สำหรับใช้งานทั่วไป และ 6 ชุดเป็นรีจิสเตอร์สถานะ ARM ใช้โหมดการประมวลผลเจ็ดโหมดเพื่อรันงานของผู้ใช้ โหมดผู้ใช้ โหมดผู้ใช้ โหมด FIQ โหมด IRQ โหมด SVC โหมด UNDEFINED โหมด ABORT โหมดตรวจสอบARM ไมโครคอนโทรลเลอร์ลงทะเบียนโหมดARM Microcontroller Register Modes USER Mode: โหมดผู้ใช้เป็นโหมดปกติซึ่งมีจำนวนการลงทะเบียนน้อยที่สุด ไม่มี SPSR และมีการจำกัดการเข้าถึง CPSR.FIQ และ IRQ: FIQ และ IRQ เป็นสองโหมดที่ทำให้เกิดการขัดจังหวะของ CPU FIQ กำลังประมวลผลการขัดจังหวะและ IRQ เป็นการขัดจังหวะมาตรฐาน โหมด FIQ มีการลงทะเบียนธนาคารเพิ่มเติมห้ารายการเพื่อให้มีความยืดหยุ่นและประสิทธิภาพสูงมากขึ้นเมื่อจัดการกับการขัดจังหวะที่สำคัญ โหมด SVC: โหมดหัวหน้างานคือโหมดการขัดจังหวะของซอฟต์แวร์ของโปรเซสเซอร์เพื่อเริ่มต้นหรือรีเซ็ตโหมดที่ไม่ได้กำหนด: โหมดที่ไม่ได้กำหนดจะดักจับเมื่อผิดกฎหมาย คำแนะนำจะถูกดำเนินการ แกน ARM ประกอบด้วยบัสข้อมูล 32 บิตและการไหลของข้อมูลที่เร็วขึ้น โหมด THUMB: ในโหมด THUMB ข้อมูล 32 บิตจะแบ่งออกเป็น 16 บิตและเพิ่มความเร็วในการประมวลผล โหมด THUMB-2: ในโหมด THUMB-2 คำแนะนำสามารถ เป็น 16 บิตหรือ 32 บิตและเพิ่มประสิทธิภาพของไมโครคอนโทรลเลอร์ ARM cortex –M3 ไมโครคอนโทรลเลอร์ ARM cortex-m3 ใช้คำสั่ง THUMB-2 เท่านั้น รีจิสเตอร์บางตัวสงวนไว้ในแต่ละโหมดสำหรับการใช้คอร์โดยเฉพาะ รีจิสเตอร์ที่สงวนไว้คือStack Pointer (SP).Link Register (LR).Program Counter (PC).Current Program Status Register (CPSR).Saved Program Status Register (SPSR)รีจิสเตอร์ที่สงวนไว้ใช้สำหรับฟังก์ชันเฉพาะ SPSR และ CPSR มีบิตควบคุมสถานะที่ใช้ในการจัดเก็บข้อมูลชั่วคราว การลงทะเบียน SPSR และ CPSR มีคุณสมบัติบางอย่างที่กำหนดโหมดการทำงาน การขัดจังหวะเปิดหรือปิดใช้งานแฟล็ก และแฟล็กสถานะ ALU แกน ARM ทำงานในสถานะ 32 บิตหรือสถานะ THUMBS สองสถานะ การเขียนโปรแกรมไมโครคอนโทรลเลอร์ ARM-Cortex ในปัจจุบัน ผู้จำหน่ายไมโครคอนโทรลเลอร์เสนอไมโครคอนโทรลเลอร์ 32 บิตตามสถาปัตยกรรม ARM cortex-m3 นักพัฒนาระบบฝังตัวจำนวนมากเริ่มใช้ไมโครคอนโทรลเลอร์ 32 บิตเหล่านี้สำหรับโครงการของตน ไมโครคอนโทรลเลอร์ ARM รองรับทั้งภาษาโปรแกรมระดับต่ำและระดับสูง สถาปัตยกรรมไมโครคอนโทรลเลอร์แบบดั้งเดิมบางตัวมีข้อจำกัดมากมาย ดังนั้นจึงใช้ภาษาโปรแกรมระดับสูงได้ยากการเขียนโปรแกรมไมโครคอนโทรลเลอร์ ARM-Cortexการเขียนโปรแกรมไมโครคอนโทรลเลอร์ ARM-Cortex ตัวอย่างเช่น ขนาดหน่วยความจำมีจำกัดและประสิทธิภาพอาจไม่เพียงพอ ไมโครคอนโทรลเลอร์ ARM ทำงานที่ความถี่ 100 เมกะเฮิร์ตซ์และประสิทธิภาพที่สูงขึ้น ดังนั้นจึงสนับสนุนภาษาระดับที่สูงขึ้น ไมโครคอนโทรลเลอร์ ARM ได้รับการตั้งโปรแกรมด้วย IDES ที่แตกต่างกัน เช่น keiluvision3, keiluvision4, coocox เป็นต้น ไมโครคอนโทรลเลอร์ 8 บิตใช้คำสั่ง 8 บิตและ ARM cortex-M ใช้คำสั่ง 32 การใช้เพิ่มเติมของโปรเซสเซอร์ Cortex เป็นชุดคำสั่งที่ลดลง คอนโทรลเลอร์หน่วยประมวลผลกลางประสิทธิภาพสูง 32 บิตไปป์ไลน์ 3 ขั้นและกะทัดรัด มี THUMB -2 เทคโนโลยีผสานอย่างเหมาะสมที่สุดด้วยคำสั่ง 16/32 บิต ประสิทธิภาพสูง รองรับเครื่องมือและ RTOS และคอร์ Sight debug และ traceJTAG หรือการเชื่อมต่อดีบักสายอนุกรม 2 พิน รองรับโปรเซสเซอร์หลายตัว โหมดพลังงานต่ำ รองรับโหมดสลีปควบคุมแพ็คเกจซอฟต์แวร์ โดเมนพลังงานหลายโดเมน Nested vectored interrupt controller (NVIC)ต่ำ เวลาแฝง, การตอบสนองการขัดจังหวะเสียงรบกวนต่ำ ไม่จำเป็นต้องเขียนโปรแกรมประกอบ ARM Cortex (STM32) ที่ใช้ Solar Street Light ปัจจุบันเทคโนโลยีพลังงานแสงอาทิตย์มีความก้าวหน้าในการใช้งานหลายอย่างเช่นบ้านอุตสาหกรรม ฯลฯ เป้าหมายหลักของโครงการนี้คือการอนุรักษ์พลังงานไฟฟ้า: มีการใช้ไฟถนนพลังงานแสงอาทิตย์แบบ Arm-Cortex ซึ่งใช้พลังงานแสงอาทิตย์ โดยทั่วไป ไฟถนนพลังงานแสงอาทิตย์จะใช้ในกรณีที่ไม่มีไฟฟ้า ส่วนประกอบฮาร์ดแวร์STM32 พร้อม ARM cortex board ไฟ LED สีขาว MOSFETBatteryRegulatorSolar PanelSoftwareKeil คอมไพเลอร์ภาษา C ที่ฝังไว้ โปรเจ็กต์นี้ใช้โปรเซสเซอร์ ARM-Cortex ของตระกูล STM32 และแบตเตอรี่สำหรับแหล่งจ่ายไฟ โครงงานนี้ใช้แผงโซลาร์เซลล์เพื่อชาร์จแบตเตอรี่โดยที่วงจรควบคุมการชาร์จจะควบคุมการชาร์จแบตเตอรี่ โปรเซสเซอร์ ARM-Cortex เชื่อมต่อกับชุด LED ด้วยความช่วยเหลือของ MOSFET Switch การควบคุมความเข้มของไฟ LED ทำได้โดยการเปลี่ยนรอบการทำงานจากแหล่ง DC หน่วยไมโครคอนโทรลเลอร์ ARM-Cortex ที่ตั้งโปรแกรมไว้ทำงานเพื่อให้มีความเข้มที่แตกต่างกันในช่วงเวลาต่างๆ ของกลางคืนโดยใช้เทคนิคการปรับความกว้างของพัลส์ วงจรควบคุมการชาร์จใช้เพื่อป้องกันแบตเตอรี่จากการคายประจุลึกและสภาวะโอเวอร์โหลด การเขียนโปรแกรมระดับแอสเซมบลีไมโครคอนโทรลเลอร์ ARM:ไมโครคอนโทรลเลอร์ ARM cortex เป็นไมโครคอนโทรลเลอร์ 32 บิต ดังนั้นคำสั่งทั้งหมดจะยาว 32 บิตซึ่งดำเนินการในรอบเดียว . ประกอบด้วยชุดคำสั่งเพื่อดำเนินการทางคณิตศาสตร์ ตรรกะ และบูลีน ARM เป็นสถาปัตยกรรมที่เก็บโหลด จากนั้นคำสั่งจะถูกดำเนินการตามเงื่อนไข ไวยากรณ์: โหลด a // a ได้รับค่าจากตำแหน่งที่เรียกว่า a // ADD12 // 12 ถูกเพิ่มเข้าไปในค่าโหลด a // เก็บ a // สุดท้าย ค่าจะถูกเก็บไว้ในตัวแปร a// การเขียนโปรแกรมภาษาแอสเซมบลีได้รับการพัฒนาโดยตัวช่วยความจำ เช่น ADD, SUB, MUL เป็นต้น แต่สำหรับการเขียนโปรแกรม ARM จะมีการเพิ่มคำสั่งพิเศษบางอย่าง เช่น ADCNES และ SWINE เป็นต้น EX: 1 ORG 0000h MOV r1, #10 MOV r2, #15 ADD r3, r2, r1 // r3=r2+r1 และค่าสุดท้ายที่เก็บไว้ใน r3 register//2.ORG 0000h MOV r1, #10 MOV r2, #15 SUB r3, r2, r1 // r3=r2-r1 และค่าสุดท้ายที่เก็บไว้ในการลงทะเบียน r3 // ไมโครคอนโทรลเลอร์ ARM Coretex-M3 การเขียนโปรแกรมระดับ C แบบฝัง: WAP เพื่อสลับ LED เดียวผ่านภาษา C แบบฝังโดยใช้ไมโครคอนโทรลเลอร์ ARM cortex#include “stm32f10x_gpio.h” #include “stm32f10x_rcc.h” GPIO_InitTypeDef GPIO_InitStructure; int ฉัน; #define LED_PORT GPIOB โมฆะ binky(); โมฆะหลัก () { โมฆะบิงกี้ (); } โมฆะบิงกี้ (โมฆะ) { RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOB เปิดใช้งาน); // เปิดใช้งานพิน PORTB // GPIO_InitStructure.GPIO_Speed ​​= GPIO_Speed_50MHz; //กำหนดความถี่พอร์ต// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //ตั้งค่า PORTB ในเอาต์พุต // GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All ; // เปิดใช้งานพิน PORTB ทั้งหมด // GPIO_Init(GPIOB, &GPIO_InitStructure); // เริ่มต้นหมุด PORTB // ในขณะที่ (1) { GPIO_WriteBit (LED_PORT, GPIO_Pin_8, Bit_SET); สำหรับ (i=0;i<1000000;i++); GPIO_WriteBit(LED_PORT,GPIO_Pin_8,Bit_RESET); สำหรับ (i=0;i<1000000;i++);GPIO_WriteBit(LED_PORT,GPIO_Pin_9,Bit_SET); สำหรับ (i=0;i<1000000;i++); GPIO_WriteBit(LED_PORT,GPIO_Pin_9,Bit_RESET); สำหรับ (i=0;i<1000000;i++);GPIO_WriteBit(LED_PORT,GPIO_Pin_10,Bit_SET); สำหรับ (i=0;i<1000000;i++); GPIO_WriteBit(LED_PORT,GPIO_Pin_10,Bit_RESET); สำหรับ (i=0;i<1000000;i++); }} ดังนั้น นี่คือทั้งหมดที่เกี่ยวกับสถาปัตยกรรม ARM พร้อมแอปพลิเคชัน

ฝากข้อความ 

Name *
อีเมลล์ *
เบอร์โทรศัพท์
ที่อยู่
รหัส ดูรหัสยืนยันหรือไม่ คลิกฟื้นฟู!
ระบุความประสงค์หรือขอข้อมูลเพิ่มเติม
 

รายการข้อความ

ความคิดเห็นกำลังโหลด ...
หน้าแรก| เกี่ยวกับเรา| ผลิตภัณฑ์| ข่าว| ดาวน์โหลด| ระบบขอใช้บริการ| ข้อเสนอแนะ| ติดต่อเรา| Service

ติดต่อ: Zoey Zhang เว็บ: www.fmuser.net

Whatsapp / Wechat: + 86 183 1924 4009

Skype: tomleequan อีเมล์: [ป้องกันอีเมล] 

เฟซบุ๊ก: FMUSERBROADCAST Youtube: FMUSER ZOEY

ที่อยู่เป็นภาษาอังกฤษ: Room305, HuiLanGe, No.273 HuangPu Road West, TianHe District., GuangZhou, China, 510620 ที่อยู่เป็นภาษาจีน: 广州市天河区黄埔大道西273号惠兰阁305(3E)