อินเตอร์เฟสการสื่อสารแบบอนุกรม -SPI ในโปรโตคอลอินเตอร์เฟสการสื่อสารฮาร์ดแวร์ในตัว

Sep 16, 2019

ฝากข้อความ

ส่วนนี้ยังคง อีกอินเตอร์เฟสการสื่อสารแบบอนุกรมในโปรโตคอลการสื่อสารฮาร์ดแวร์ - 。เปรียบเทียบกับโปรโตคอลพอร์ตอนุกรม UART, มันมีเอกลักษณ์ของตัวเอง

ที่อยู่จะถูกยกมาดังนี้: Http://www.eepw.com.cn/article/201812/396060.htm

แนะนำสั้น ๆ

(SerialPeripheral Interface), อุปกรณ์ต่อพ่วงแบบอนุกรม

SPI เป็นตัวย่อของ SerialPeripheral Interface SPI เป็นบัสสื่อสารความเร็วสูงเต็มเพล็กซ์ซิงโครนัสและใช้เพียงสี่บรรทัดบนพินของชิป ช่วยประหยัดพินของชิปและประหยัดพื้นที่และความสะดวกในการจัดวาง PCB เนื่องจากคุณสมบัติที่เรียบง่ายและใช้งานง่ายนี้ทำให้ชิปมากขึ้นจึงรวมโปรโตคอลการสื่อสารเช่น AT91RM9200

- จากสารานุกรม Baidu

อินเทอร์เฟซได้รับการพัฒนาโดยโมโตโรล่าในกลางปี 1980 และได้กลายเป็นมาตรฐานจริง

- จาก Wiki

จาก "มาตรฐานความเป็นจริง" ที่ Wikipedia ได้ให้คำปรึกษาเราสามารถรับความรู้ทางวิทยาศาสตร์ได้

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

- จากสารานุกรม Baidu

อินเตอร์เฟส SPI กำหนดโฮสต์และสถาปัตยกรรมการสื่อสารที่มากขึ้น บนบัส SPI เดียวกันมีเพียงโฮสต์เดียวเท่านั้นและมีคอมพิวเตอร์ทาสหลายเครื่อง สถาปัตยกรรมดังกล่าว จำกัด การริเริ่มของการสื่อสารเฉพาะในฝั่งโฮสต์โฮสต์เริ่มการสื่อสารและทาสทำให้ต้องการ

สายสัญญาณ

SPI เรียกว่าบัสอนุกรมสี่สายและสายสัญญาณของมันคือ:

SCLK: นาฬิกาอนุกรม (เอาต์พุตโฮสต์)

MOSI: เอาต์พุตหลักจากอินพุต slave หรือโฮสต์เอาต์พุตอินพุต slave (ข้อมูลเอาต์พุตจากโฮสต์)

MISO: อินพุตหลักจากเอาต์พุตหรืออินพุตหลักจากเอาต์พุต (จากเอาต์พุตข้อมูลเอาต์พุต)

SS: การเลือกใช้ทาส (โดยทั่วไปจะมีประสิทธิภาพต่ำ, เอาต์พุตโฮสต์)

การตั้งชื่อของสายสัญญาณก็หลากหลายเช่นกัน

นาฬิกาพอร์ตอนุกรม:

SCLK: SCK

เอาท์พุทหลัก -> จากอินพุต (MOSI):

SIMO, MTSR - สอดคล้องกับ MOSI ระหว่างอุปกรณ์หลักและอุปกรณ์ทาส

SDI, DI, DIN, SI - จากอุปกรณ์; เชื่อมต่อกับ MOSI บนอุปกรณ์หลักหรือเชื่อมต่อกับการเชื่อมต่อต่อไปนี้

SDO, DO, DOUT, SO - บนอุปกรณ์หลัก; เชื่อมต่อกับ MOSI ของสถานีทาสหรือเชื่อมต่อกับการเชื่อมต่อด้านบน

主输入 <--- 从输出="">

SOMI, MRST - สอดคล้องกับ MISO ระหว่างอุปกรณ์หลักและอุปกรณ์ทาส

SDO, DO, DOUT, SO - จากอุปกรณ์ เชื่อมต่อกับ MISO บนอุปกรณ์หลักหรือเชื่อมต่อกับการเชื่อมต่อต่อไปนี้

SDI, DI, DIN, SI - อุปกรณ์หลัก; MISO เชื่อมต่อกับทาสหรือการเชื่อมต่อบน

การเลือกทาส:

SS: SSEL, CS, CE, nSS, / SS, SS #

ชื่อที่สับสนข้างต้นคือ SDO, SDI, DOUT, DIN และอื่น ๆ ซึ่งทั้งหมดนี้จะต้องเห็นแยกต่างหากในอุปกรณ์หลักหรือจากอุปกรณ์เพียงอย่างเดียว แต่โดยทั่วไปแล้วลองเขียนข้อกำหนดที่ชัดเจนซึ่งไม่ใช่เรื่องง่ายที่จะสร้างความคลุมเครือ

SPI ซึ่งเป็นอินเตอร์เฟสแบบซิงโครนัสถือได้ว่ามีสัญญาณซิงโครนัสสองตัว คนแรกคือการเลือกสัญญาณ SS จากเครื่องทาสเพื่อแจ้งทาสที่เลือกเพื่อเตรียมการสื่อสาร SPI และที่สองคือการประสานสัญญาณนาฬิกา SCLK เมื่อตัวรับส่งสัญญาณมีปฏิสัมพันธ์กับข้อมูลพวกเขาจะถูกส่งออกและการสุ่มตัวอย่างโดยบิตขึ้นอยู่กับการกระโดดของ SCLK

สัญญาณสี่สายไม่จำเป็นต้องใช้ทั้งหมดตามโหมดการทำงานสามารถกำหนดค่าเป็นสองบรรทัดและสามบรรทัด

ในหน้าการกำหนดค่าของเครื่องมือ STM32CubeMX คุณสามารถเห็นได้อย่างชัดเจนว่าพินชิปแตกต่างกันอย่างไรสำหรับโหมดการทำงานที่แตกต่างกัน







การเปรียบเทียบพบว่าความแตกต่างระหว่างสี่และสามบรรทัดของ full duplex คือสัญญาณทาส NSS สถานการณ์นี้เป็นปกติเนื่องจากบัส SPI มีสถาปัตยกรรมการสื่อสารหลักเดียวและหนึ่งสถาปัตยกรรมเท่านั้นและสัญญาณ slave NSS อยู่ในระดับต่ำเสมอ

สัญญาณเวลา

ลำดับเวลาของอินเทอร์เฟซ SPI แบบลวดสี่เส้นมักจะอยู่ในระดับต่ำเสมอก่อนเลือกสายสัญญาณ SS จากเครื่องจากนั้นส่งออก SCLK และใช้ข้อมูล MOSI ในเวลานี้ MISO เป็นสถานะอิมพีแดนซ์สูง ดังนี้



โดยปกติจะมีอุปกรณ์อินเตอร์เฟส SPI และจะมีไดอะแกรมลำดับที่สอดคล้องกันบน Spec อินเตอร์เฟส SPI ถูกดักจับตามลำดับ รุ่น FLASH คือ GD25Q32C, ส่วนต่อประสาน SPI รุ่น OLED คือ QG-2832TLBFG04 และมีการแนะนำชิ้นส่วน Spec ของอุปกรณ์ทั้งสองดังต่อไปนี้: ภาพหน้าจอสองภาพ:





ไม่ยากที่จะพบว่าข้อกำหนดของไดอะแกรมกำหนดเวลากำหนดลำดับและหน่วงเวลาของแต่ละระดับสัญญาณออกของสายสัญญาณและกำหนด "การจัดตำแหน่ง" ของสัญญาณนาฬิกากระโดดพร้อมกับสัญญาณข้อมูล "การจัดตำแหน่ง" ที่นี่เป็นจริงการส่งออกและการสุ่มตัวอย่างของข้อมูล

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

ลักษณะเวลาเหล่านี้กำหนดขอบเขตของโฮสต์ SPI เมื่อสื่อสารกับมันหรือไม่เกินขอบเขตของคำจำกัดความมิฉะนั้นจะนำไปสู่การสื่อสารที่ผิดปกติจากการตอบสนองของชิ้นส่วนเครื่องจักร

อุปกรณ์ต่าง ๆ มีข้อกำหนดด้านเวลาที่แตกต่างกันสำหรับอินเตอร์เฟส SPI ไดอะแกรมลำดับแรกอย่างง่ายและตามไดอะแกรมลำดับนี้อินเตอร์เฟส SPI ยังสามารถกำหนดค่าพารามิเตอร์การกำหนดค่าอินเตอร์เฟสที่แตกต่างกัน

รายการการกำหนดค่าส่วนต่อประสาน

โดยทั่วไปการกำหนดค่าเพิ่มเติมของอินเทอร์เฟซคือ: โหมดอินเทอร์เฟซ (การกำหนดค่าที่แท้จริงคือการเลือกโหมดเดี่ยวและโหมดดูเพล็กซ์) โหมดโหมดทาสอุปกรณ์, ความกว้างของข้อมูล, ขั้วนาฬิกา (CPOL :), ขนาดและการเลือกขั้ว

โหมดอินเตอร์เฟส

ส่วนต่อประสานสายสี่ SPI มาตรฐานใช้การสื่อสารระหว่างโฮสต์และสลาฟสำหรับการโต้ตอบข้อมูลและทั้งสองฝ่ายมีกระบวนการรับและส่งข้อมูล ในอินเทอร์เฟซ LCD / OLED SPI ไม่จำเป็นต้องส่งคืนข้อมูลไปยังโฮสต์เป็นอุปกรณ์ของอุปกรณ์ เพียงต้องการรับข้อมูลการควบคุมและแสดงข้อมูลจากโฮสต์

ขึ้นอยู่กับสถานการณ์นี้มันสามารถกำหนดค่าเป็นการสื่อสารลวด Simplex สามสายนั่นคือมีเพียง SS, SCLK นาฬิกาและเอาต์พุตข้อมูล MOSI เท่านั้นที่สามารถเลือกได้จากเครื่อง

โหมดทาสอุปกรณ์หลัก

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

ความกว้างของข้อมูล

ตามชื่อหมายถึงการส่งข้อมูลสามารถกำหนดค่าเป็น 8 บิต, 16 บิตและอื่น ๆ ซึ่งจะถูกกำหนดตามชิป

ขั้วนาฬิกาและเฟสสัญญาณนาฬิกา

ทั้งสองคือ CPOL (ขั้วนาฬิกา) และ CPHA (เฟสนาฬิกา) ขั้วหมายถึงระดับสูงและต่ำ สิ่งนี้กำหนดบัส SPI ในสถานะว่างนาฬิการักษาระดับสูงหรือต่ำเพราะเมื่อพูดถึงการสื่อสาร SPI ขอบกระโดดนาฬิกาแรกจะเพิ่มขึ้นและลดลง เฟสหมายถึงการข้ามขอบของนาฬิการะบุเอาต์พุตของสัญญาณข้อมูลและวิธีการสุ่มตัวอย่างที่สอดคล้องกับนาฬิกา

การกำหนดค่าทั้งสองได้รับการตีความอย่างชัดเจนในวิกิพีเดียสารานุกรม Wiki และ Baidu





อัตรานาฬิกา

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

ข้อมูลบิตบิตขนาดและการเลือกที่สิ้นสุด

การส่งบิตที่มีความสำคัญสามารถกำหนดค่าได้จากโพรโทคอล UART แรกที่สามารถทราบได้ UART ที่ระบุลำดับความสำคัญของข้อมูลบิต 0 และ SPI นี้เป็นลำดับความสำคัญที่สามารถกำหนดค่าได้เพื่อส่งบิต

จากหน้าจออนุกรมเวลาของ FLASH รุ่น GD25Q32 และ OLED QG-2832TLBFG04 เราจะเห็นได้ว่าอุปกรณ์ทั้งสองนี้ให้ความสำคัญกับ MSB นั่นคือลำดับความสำคัญสูงสุด

จากนั้นเปรียบเทียบคำแนะนำของชิปตัวอักษร GT21L16S2W สำหรับการอ่าน:



จะเห็นว่าลำดับความสำคัญการส่งของ MSB ถูกนำมาใช้กันทั่วไปในอุปกรณ์ SPI

สรุปอินเตอร์เฟสการสื่อสาร SPI หนึ่งโฮสต์และสถาปัตยกรรมการสื่อสารสเลฟหลายอัน โหมดมาตรฐานมีสี่สายสัญญาณเริ่มสื่อสารกับสัญญาณที่เลือก SS สัญญาณนาฬิกา SCLK จะทำการส่งออกบิตและการสุ่มตัวอย่างกำหนดค่าเวลาการสุ่มตัวอย่างและให้ความสำคัญกับการออกบิต


ส่งคำถาม