深入理解SD卡:協(xié)議

Overview

深入理解SD卡系列文章將介紹SD卡厢汹,涉及SD卡的協(xié)議及驅(qū)動代碼蓖宦。我們學習SD卡目的是為了理解SD卡的驅(qū)動代碼,修改它斋荞,最終解決工作中遇到的SD卡相關(guān)的問題血久。本系列文章的目標是理解SD沧侥,包括協(xié)議和驅(qū)動代碼爸邢。在學習任何設(shè)備驅(qū)動時咏花,有個東西我們是無法繞過的龄恋,那就是協(xié)議疙驾,本文講的就是SD卡的協(xié)議。

學習SD卡協(xié)議郭毕,可以讓我們更好的了解SD卡的運作機制它碎。在最開始學習SD卡的時候,我們只需要對SD卡的協(xié)議有個大概了解,能基本滿足我們看懂SD卡驅(qū)動代碼就行扳肛。如果之后在閱讀SD卡驅(qū)動代碼有不理解的地方傻挂,可以回過頭來翻翻SD協(xié)議文檔。建議在讀SD驅(qū)動源碼和學習SD卡協(xié)議之間交替進行挖息,互相驗證金拒。

關(guān)于SD卡,有個叫SD卡協(xié)會的組織套腹,這個組織規(guī)定了各種涉及SD卡的協(xié)議绪抛,并發(fā)布協(xié)議文檔。這些SD卡協(xié)議文檔电禀,最重要的有兩種文檔:SD Specifications Part 1 Physical Layer Simplified Specification 和SD Specifications Part A2 SD Host Controller Simplified Specification幢码。

個人理解,定協(xié)議的目的就是為了使某個事物標準化鞭呕,標準化后蛤育,可以方便大家協(xié)作,簡化工作量葫松,提高效率瓦糕,避免重復工作導致的浪費。Physical Layer Simplified Specification(以下簡稱:卡協(xié)議)規(guī)定了SD卡的物理規(guī)格和SD卡使用的命令協(xié)議腋么,像Sandisk咕娄、Kingston這類SD卡制造商必須遵守該協(xié)議。假設(shè)Sandisk開發(fā)了一款SD卡沒有遵循該協(xié)議珊擂,而是自己內(nèi)部新搞了一套協(xié)議圣勒,這樣市面上就沒有設(shè)備能使用該款SD卡。除非有人專門開發(fā)一個驅(qū)動去適配該款SD卡摧扇,但是這樣很浪費人力圣贸。如果每個SD卡廠商都使用自己的協(xié)議,那么每支持一款SD卡扛稽,都需要重新寫一套代碼去適配它吁峻,那這工作量就很恐怖了。

類似的在张,SD Host Controller Simplified Specification(以下簡稱:主機協(xié)議)用來標準化SD主機控制器用含,針對的是SD卡主機控制器廠商。這個協(xié)議不是強制的帮匾,在我們閱讀SD驅(qū)動代碼的時候啄骇,如果涉及到SD卡主機控制的代碼,我們可能需要翻一下這篇文檔瘟斜,或者查閱SD卡主機控制器廠商提供給我們的文檔(一般都是各大cpu芯片廠商提供給我們開發(fā)者文檔)缸夹。

本文的講解的是卡協(xié)議痪寻,接下來,會有一些的英文夾雜在中文里面虽惭,因為有些名詞槽华,還是原汁原味的好,我翻譯出來趟妥,沒了那種韻味猫态,水平有限,望大家諒解披摄。

System Features

本大章節(jié)講解SD的一些基本特征亲雪,包括SD卡的物理規(guī)格、容量疚膊、速度等方面义辕。

Form-factor

目前市面上按物理規(guī)格來看,常見的SD卡有三種:

  • 標準的SD卡寓盗,這種卡比較大灌砖,在有些相機或者PC電腦上會使用;
  • 第二種是miniSD傀蚌,這種卡我沒怎么使用基显,不作詳述;
  • 最后一種是叫TF卡善炫,也稱mirco SD撩幽,這種卡比較小,是我們最常接觸的箩艺,像我們的手機里面使用的就是這種卡窜醉。很多人基本上都管我們手機使用的那種卡叫SD卡,這樣的叫法實際上不夠準確艺谆,更準確應(yīng)該是叫TF卡榨惰,但是不管怎樣,都沒人會去計較静汤,能理解就行琅催。

本文中,如果我說SD卡撒妈,都是泛指這三類SD卡恢暖,除非特意說明排监。并且如果特指狰右,我會使用標準SD卡或者TF卡等名稱代替。

Capacity of Memory

SD卡按容量(Capacity)分類舆床,可以分為標準容量卡棋蚌、高容量卡嫁佳,擴展容量卡,詳細如下:

  1. Standard Capacity SD Memory Card (SDSC): 這種卡容量小于等于2GB
  2. High Capacity SD Memory Card (SDHC): 這種卡容量大于2GB谷暮,小于等于32GB
  3. Extended Capacity SD Memory Card (SDXC):這種卡容量大于32GB蒿往, 小于等于2TB

如果你買了一張16G或者32G的SD卡,你會發(fā)現(xiàn)SD卡上面印有"HC"字樣湿弦,代表該卡是SDHC卡瓤漏,同理,64G的SD卡上面印著"XC"颊埃,表示SDXC卡蔬充。

Voltage range

SD卡按供電范圍劃分,分兩種:

  1. High Voltage SD Memory Card: 操作的電壓范圍在2.7-3.6V
  2. UHS-II SD Memory Card: 操作的電壓范圍VDD1: 2.7-3.6V, VDD2: 1.70-1.95V

UHS-II類型的卡參考協(xié)議文檔: SD Specifications Part 1 UHS-II Simplified Addendum

Bus Speed Mode (using 4 parallel data lines)

SD卡按總線速度模式來分班利,有下面幾種:

  1. Default Speed mode: 3.3V供電模式饥漫,頻率上限25MHz,速度上限 12.5MB/sec
  2. High Speed mode: 3.3V供電模式罗标,頻率上限50MHz庸队,速度上限 25MB/sec
  3. SDR12: UHS-I卡, 1.8V供電模式闯割,頻率上限25MHz彻消,速度上限 12.5MB/sec
  4. SDR25: UHS-I卡, 1.8V供電模式宙拉,頻率上限50MHz证膨,速度上限 25MB/sec
  5. SDR50: UHS-I卡, 1.8V供電模式鼓黔,頻率上限100MHz央勒,速度上限 50MB/sec
  6. SDR104: UHS-I卡, 1.8V供電模式澳化,頻率上限208MHz崔步,速度上限 104MB/sec
  7. DDR50: UHS-I卡, 1.8V供電模式缎谷,頻率上限50MHz井濒,性能上限 50MB/sec
  8. UHS156: UHS-II RCLK Frequency Range 26MHz - 52MHz, up to 1.56Gbps per lane.

SDR(Single Date Rate), 一個周期只能采集一次數(shù)據(jù),即一個bit列林,由于SD卡是4條數(shù)據(jù)線并行傳輸瑞你,所以一個周期能傳輸4bit,如果頻率是50MHz(即1秒傳輸次數(shù)為50 000 000)希痴,那么1秒能傳輸?shù)臄?shù)據(jù)量為25MB(這里1MB為1 000 000 Byte)者甲。所以這就是為什么各種SDR模式里面,頻率上限是速度上限的兩倍砌创。而對于DDR(Double Data Rate)虏缸,在時鐘上升沿和下降沿都可以采集數(shù)據(jù)鲫懒,也就是單一周期內(nèi)可讀取或?qū)懭?次,因此4條并行數(shù)據(jù)線在一個周期內(nèi)能傳輸8bit刽辙。

Speed Class

SD卡按照讀寫性能劃分窥岩,有5種規(guī)格,每種規(guī)格后面的數(shù)字象征最小的讀寫速度:

  • Class 0 - 這種卡沒有性能要求
  • Class 2 - 要求在 Default Speed mode 下宰缤,性能至少要達到(大于等于) 2MB/sec
  • Class 4 - 要求在 Default Speed mode 下颂翼,性能至少要達到 4MB/sec
  • Class 6 - 要求在 Default Speed mode 下,性能至少要達到 6MB/sec
  • Class 10 - 要求在 High Speed mode 下慨灭,性能至少要達到 10MB/sec

廠商賣的SD卡上面基本上都會印著一個用圓圈包圍起來的數(shù)字10疚鲤,表示該卡是Class 10 類型的卡。

Bus Protocol

在SD Bus上缘挑,有三種transaction:

  • Command: 一個命令代表著將開始一個操作集歇。命令通過CMD線傳輸,方向從host到card语淘。
  • Response: 響應(yīng)是card對前一次host發(fā)送的命令的執(zhí)行情況的反饋诲宇。也是通過CMD線傳輸,方向從card到host惶翻。
  • Data: 數(shù)據(jù)是通過4條data線傳輸?shù)墓美叮较蚩梢詮腸ard到host,也可以從host到card吕粗。

不管Command纺荧,還是Response或者Data,都開始于一個start bit (bit值0)颅筋,結(jié)束于一個end bit(bit值1)宙暇。

關(guān)于這塊的內(nèi)容不做過多解釋了,詳情自行閱讀"Physical Layer Simplified Specification Version 4.10"文檔 "3.6 Bus Protocl" 章節(jié)的內(nèi)容议泵。

Registers

下圖是SD卡的體系架構(gòu)占贫,可以看到內(nèi)部包含了一系列的寄存器:

<div style="text-align:center" markdown="1">


SD Memory Card Architecture

</div>

各個寄存器的詳細信息如下:

SD Memory Card Registers

OCR register

OCR寄存器保存著SD卡的工作電壓范圍。如果OCR寄存器的某位為1先口,表示卡支持該位對應(yīng)的電壓型奥。最后一位表示卡上電后的狀態(tài)(是否處于”忙狀態(tài)”),如果該位為0碉京,表示忙厢汹,如果為1,表示處于空閑狀態(tài)谐宙。

OCR Register Definition

CID register

CID是一個128 bits的寄存器烫葬,該寄存器包含一個卡的標識信息。

The CID Fields

CSD Register

卡的描述數(shù)據(jù)寄存器(CSD)包含了訪問該卡數(shù)據(jù)時的必要配置信息卧惜,比如the data format, error correction type, maximum data access time, device size 等等厘灼。

The CSD Register Fields (CSD Version 2.0)

RCA register

卡的相對地址,該16位卡地址寄存器保存了卡在識別過程中發(fā)布的地址。該地址用于在主機識別卡后咽瓷,利用該地址與卡進行通信设凹。該寄存器只有在SD模式下才有效。

SCR register

SD配置寄存器提供SD卡的特殊特性信息茅姜,其大小為64位闪朱。該寄存器由廠商編程,主機不能對它進行編程钻洒。

The SCR Fields

UHS

UHS(Ultra High Speed)是與SDXC同時推出的SD卡總線標準奋姿。此標準適用于SDHC和SDXC。

UHS-I最高傳輸速度(理論值)為104MB/s素标。英文字母I代表該設(shè)備(SD卡或讀卡器)支持UHS-I接口称诗。英文字母U,包含數(shù)目字1头遭,代表該設(shè)備讀寫速度達U1寓免。

UHS-II最高傳輸速度達312MB/s,是UHS-I的三倍计维。

設(shè)備(如智能手機)必須支持UHS袜香,才能保證達到U1或U3最低寫入速度。

下面介紹UHS-I初始化的命令序列流程鲫惶。

Command Sequence to Use UHS-I
  • 上電后蜈首,卡會處于3.3V signaling模式下。第一個CMD0命令會選擇bus模式:SD模式或者SPI模式欠母。只有在SD模式下欢策,才能進入1.8V signaling模式。一旦卡進入1.8V signal模式赏淌,卡不能切換到SPI模式或者3.3V signal模式猬腰,除非重新上電。
  • 收到CMD0命令后猜敢,卡將進入空閑狀態(tài)(Idle state)姑荷,但是仍然工作在SDR12時序下。UHS-I只提供了SD模式缩擂,沒有提供SPI模式鼠冕。
  • 由于更高的總線速度需要低水平的signaling,對SDR50胯盯、DDR50和SDR104模式懈费,UHS-I提供的signaling為1.8V。host會給卡提供3.3V的電壓博脑,并且提供1.8V signaling水平的電壓給SDCLK憎乙、CMD和DAT[3:0]線票罐,這幾個都是從3.3V的電源線轉(zhuǎn)換過來的。為了避免主機與卡之間的電壓不匹配泞边,signaling水平在初始化時的電壓轉(zhuǎn)換序列中就已經(jīng)被改變了该押。主機和卡通過ACMD41命令來確認雙方是否支持1.8V signaling模式。如果主機和卡都支持1.8V signaling模式阵谚,這就意味著UHS-I卡可用蚕礼。
  • UHS-I只能使用4-bit的bus模式,CMD42是個例外梢什。如果卡被鎖住了奠蹬,就需要通過發(fā)送CMD42命令(1-bit模式)解鎖,然后發(fā)送ACMD6命令將bus模式切換到4-bit嗡午。
  • 在卡解鎖的情況下囤躁,CMD19命令執(zhí)行在1.8V signaling的傳輸狀態(tài)。其他情況荔睹,CMD19都會被當做非法命令割以。

SD Memory Card Functional Description

對SD卡與主機(host)來說,有兩種操作模式:

  • Card identification mode: 對卡reset重置后应媚,主機進入卡識別模式严沥,對卡來說,在reset后中姜,除非收到CMD3命令消玄,否則卡一直處于該模式下。
  • Data transfer mode: 當卡第一次發(fā)布它的RCA后丢胚,該卡將處于數(shù)據(jù)傳輸模式翩瓜。而對主機來說,在它識別了bus線上的所有卡后携龟,進入該模式兔跌。

Card identification mode

Operating Condition Validation

SD卡識別模式流程圖如下:

SD Memory Card State Diagram (card identification mode)
  1. 在主機與卡通信之前,主機不清楚卡支持的電壓范圍峡蟋,并且卡也不知道是否支持主機提供的供電電壓坟桅。主機會以默認電壓發(fā)送一個reset指令(CMD0),并且主機默認卡能支持該命令。然后蕊蝗,為了確認電壓仅乓,主機接下來會發(fā)送一個CMD8命令。

  2. 為了驗證SD卡接口的操作條件蓬戚,主機通過發(fā)送SEND_IF_COND (CMD8)命令夸楣,去獲取SD卡支持的工作電壓范圍。SD卡通過檢測CMD8的參數(shù)部分來檢查主機使用的工作電壓,主機通過分析卡CMD8的response參數(shù)來確認SD卡是否可以在所給電壓下工作豫喧,如果SD卡可以在指定電壓下工作石洗,則它的response里面會包含cmd8參數(shù)里面提供的電壓 。如果不支持所給電壓紧显,則SD卡不會給出任何響應(yīng)信息讲衫,并繼續(xù)處于IDLE狀態(tài)。如果要初始化SDHC和SDXC鸟妙,在第一次發(fā)送ACMD41命令前焦人,必須先發(fā)送CMD8挥吵。

  3. SD_SEND_OP_COND (ACMD41)命令來識別或者拒絕不匹配host主機供電電壓范圍的卡重父。如果SD卡在主機規(guī)定的電壓范圍內(nèi)不能實現(xiàn)數(shù)據(jù)傳輸,卡將放棄下一步的總線操作而進入不活動狀態(tài)(Inactive State)忽匈。

  4. 主機發(fā)送ACMD41命令時房午,可以通過將該命令所帶的OCR參數(shù)設(shè)置為0,用來查詢卡支持的工作電壓范圍丹允。當ACMD41被用于查詢時郭厌,卡將忽略掉ACMD41里面的HCS參數(shù)。主機在查詢到卡的工作電壓后雕蔽,也許會將該電壓作為接下來發(fā)送的ACMD41命令的參數(shù)折柠。

  5. 在整個初始化過程中,主機不允許改變正在操作的電壓范圍批狐。

Card Initialization and Identification Process

Card Initialization and Identification Flow (SD mode)
  1. 當總線被激合后扇售,主機就開始處理卡的初始化和識別。在主機發(fā)送SD_SEND_OP_COND(ACMD41)命令開始處理SD卡初始化時嚣艇,主機會在ACMD41的參數(shù)中設(shè)置它的操作條件和設(shè)置OCR中的HCS位承冰。HCS位被設(shè)置為1表示主機支持SDHC或者SDXC。HCS被設(shè)置為0表示主機不支持SDHC和SDXC食零。

  2. 卡利用OCR里面的busy位來通知主機ACMD41的初始化已經(jīng)完成困乒。如果busy位為0,表示卡還在初始化贰谣,如果busy位為1娜搂,說明初始化已經(jīng)完成。主機會在1s的時間內(nèi)吱抚,重復不斷地發(fā)送ACMD41命令涌攻,直到busy位被置1為止∑瞪耍卡只有在第一次收到設(shè)置電壓的ACMD41命令時恳谎,才會去檢查操作條件和OCR中的HCS位。并且在重復發(fā)送ACMD41命令的這段時間里,主機不應(yīng)該發(fā)送任何命令因痛,除了CMD0婚苹。

  3. 如果卡能正確響應(yīng)CMD8,之后鸵膏,卡對ACMD41命令的響應(yīng)會包含一個CCS字段膊升,CCS在卡返回ready時(busy位置1)有效。CCS=0表示卡是SDSC谭企,CCS=1表示卡是SDHC或者SDXC廓译。

  4. 在ACMD41之后,主機會發(fā)送 ALL_SEND_CID (CMD2)债查,獲取卡的CID非区。在卡發(fā)送它的CID之后,卡進入識別狀態(tài)(Identification State)盹廷。

  5. 接著征绸,主機發(fā)送CMD3 (SEND_RELATIVE_ADDR),請求卡發(fā)布卡的RCA俄占。RCA是一個比CID短的管怠,并且將來在數(shù)據(jù)傳輸模式中使用的地址。

Data Transfer Mode

因為一些卡在識別模式(Identification Mode)下缸榄,對操作頻率有限制渤弛,所以在識別模式結(jié)束前,主機的頻率需要一直保持在 fOD甚带。在數(shù)據(jù)傳輸模式(Data Transfer Mode)她肯,主機頻率在fpp范圍內(nèi)是可執(zhí)行的。

主機必須發(fā)送SEND_CSD(CMD9)來獲得卡規(guī)格數(shù)據(jù)寄存器(CSD)內(nèi)容欲低,獲取像塊大小辕宏、卡容量這類信息。

SET_DSR(CMD4)廣播命令配置所有識別到的卡的驅(qū)動階段砾莱。它對DSR寄存器進行編程以適應(yīng)應(yīng)用的總線布局(長度)瑞筐、總線上卡的數(shù)目和數(shù)據(jù)傳輸頻率。clock rate也是在這個時候從fOD切到fpp腊瑟。對卡和主機來說聚假,SET_DSR(CMD4)命令是個可選。

CMD7用于選擇卡闰非,并且將卡帶入傳輸狀態(tài)(Transfer State)膘格。在同一個時間內(nèi),只有一張卡能進入傳輸狀態(tài)财松。當發(fā)送的CMD7的RCA地址參數(shù)為"0x0000"瘪贱,所有卡將跳回到準備狀態(tài)(Stand-by State )纱控。

SD卡數(shù)據(jù)傳輸模式的流程圖如下:

SD Memory Card State Diagram (data transfer mode)

對已經(jīng)擁有RCA的卡來說,對它發(fā)送identification commands(比如ACMD41菜秦、CMD2)甜害,它將不會有任何回應(yīng)。在數(shù)據(jù)傳輸模式下球昨,主機與被選中的卡(使用定向命令)之間的數(shù)據(jù)傳輸都是點對點的尔店。通過cmd線,所有定向命令(addressed commands)都會收到一個用于確認的response主慰。

下面是數(shù)據(jù)傳輸模式下關(guān)于數(shù)據(jù)傳輸?shù)囊恍┛偨Y(jié):

  • 在任何時候嚣州,所有的讀命令集在執(zhí)行過程中都可以被stop command (CMD12)打斷。cmd12命令將會使數(shù)據(jù)傳輸終止共螺,并且使卡退回到傳輸狀態(tài)(Transfer State)该肴。讀命令集包括:block read(CMD17), multiple block read(CMD18), send write protect(CMD30), send SCR(ACMD51) 和 general command in read mode (CMD56)。
  • 在任何時候璃谨,所有的寫命令集在執(zhí)行過程中都可以被stop command (CMD12)打斷沙庐。寫命令集包括: block write(CMD24 and CMD25), program CSD(CMD27), lock/unlock command(CMD42)和general command in write mode(CMD56)鲤妥。
  • 一旦數(shù)據(jù)傳輸完成佳吞,卡就會退出數(shù)據(jù)寫狀態(tài),并且進入正在編程狀態(tài)(Programming State)(傳輸成功)棉安,或者進入傳輸狀態(tài)(傳輸失數装狻)。
  • 如果一個塊寫操作被打斷贡耽,但是最后一個block的塊長度和CRC有效的話衷模,這塊數(shù)據(jù)也將會被編程到卡里。
  • 卡也許會對塊寫操作提供緩存蒲赂,這意味著阱冶,在一個block還在被編程的情況下,下一個block可以被發(fā)送這個卡里面滥嘴。如果所有的寫緩存都已經(jīng)滿了的話木蹬,只要卡還在正在編程狀態(tài),DAT0線就會一直保持在拉低狀態(tài)若皱。
  • 對寫CSD镊叁、寫保護和擦除操作來說,卡不會提供緩存走触。這意味著晦譬,在卡正忙于處理這其中任何一個命令時,卡不會接收任何發(fā)送到卡的數(shù)據(jù)互广。只要卡還在忙敛腌,DAT0線就會拉低,并且處于正在編程狀態(tài)(Programming State)。
  • 當卡正在編程時像樊,不允許任何一個參數(shù)設(shè)置命令集(Parameter set commands)夸溶。參數(shù)設(shè)置命令集包括: set block length(CMD16), erase block start(CMD32)和erase block end(CMD33)。
  • 當卡正在編程時凶硅,不允許任何一個讀命令集缝裁。
  • 當將其他的卡從準備狀態(tài)(Stand-by)切換到傳輸狀態(tài)(使用CMD7),不會中斷當前卡的擦除或者編程操作足绅。當前卡將會切換到斷開狀態(tài)(Disconnect State)捷绑,并且釋放數(shù)據(jù)線。
  • 當卡正在編程或者待編程時氢妈,對其重置(發(fā)送CMD0或者CMD15)粹污,將會導致操作終止,并且可能會導致卡內(nèi)的數(shù)據(jù)內(nèi)容被破壞首量。因此主機有責任去禁止這樣的操作壮吩。

至此,本文關(guān)于SD卡協(xié)議的內(nèi)容就介紹到這里加缘。通過本文鸭叙,可以對SD卡有個大概的了解,尤其是關(guān)于SD卡初始化這段內(nèi)容拣宏。就SD卡協(xié)議這方面來說沈贝,了解一些基本的東西就行。在我們今后在遇到SD問題時需要時勋乾,可以翻出來看一下宋下。水平有限,有些地方可能會出現(xiàn)錯誤辑莫,望各位能指出來学歧,希望能和各位共同探討技術(shù)方面的內(nèi)容。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末各吨,一起剝皮案震驚了整個濱河市枝笨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绅你,老刑警劉巖伺帘,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忌锯,居然都是意外死亡伪嫁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門偶垮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來张咳,“玉大人帝洪,你說我怎么就攤上這事〗呕” “怎么了葱峡?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長龙助。 經(jīng)常有香客問我砰奕,道長,這世上最難降的妖魔是什么提鸟? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任军援,我火速辦了婚禮,結(jié)果婚禮上称勋,老公的妹妹穿的比我還像新娘胸哥。我一直安慰自己,他們只是感情好赡鲜,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布空厌。 她就那樣靜靜地躺著,像睡著了一般银酬。 火紅的嫁衣襯著肌膚如雪嘲更。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天捡硅,我揣著相機與錄音哮内,去河邊找鬼盗棵。 笑死壮韭,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的纹因。 我是一名探鬼主播喷屋,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瞭恰!你這毒婦竟也來了屯曹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤惊畏,失蹤者是張志新(化名)和其女友劉穎恶耽,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颜启,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡偷俭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了缰盏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涌萤。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡淹遵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出负溪,到底是詐尸還是另有隱情透揣,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布川抡,位于F島的核電站辐真,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏崖堤。R本人自食惡果不足惜拆祈,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倘感。 院中可真熱鬧放坏,春花似錦、人聲如沸老玛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜡豹。三九已至麸粮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間镜廉,已是汗流浹背弄诲。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留娇唯,地道東北人齐遵。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像塔插,于是被迫代替她去往敵國和親梗摇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容